Tag: audio

AudioQueuecallback模拟器,但不是在设备上

我目前正在开发iPhone上的audio处理应用程序。 它基于Apple的SpeakHere示例代码,旨在实时进行audio处理和回放。 代码在模拟器中运行良好,但在设备上testing时不会callback。 callback函数是这样的: void AQPlayer::AQBufferCallback(void * inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inCompleteAQBuffer) { AQPlayer *THIS = (AQPlayer *)inUserData; if (THIS->mIsDone) return; UInt32 numBytes; UInt32 nPackets = THIS->GetNumPacketsToRead(); OSStatus result = AudioFileReadPackets(THIS->GetAudioFileID(), false, &numBytes, inCompleteAQBuffer->mPacketDescriptions, THIS->GetCurrentPacket(), &nPackets, inCompleteAQBuffer->mAudioData); if (result) printf("AudioFileReadPackets failed: %d", (int)result); if (nPackets > 0) { inCompleteAQBuffer->mAudioDataByteSize = numBytes; inCompleteAQBuffer->mPacketDescriptionCount = nPackets; //Buffer […]

核心audioSwift Equalizer一次调整所有频段?

我无法在Swift中设置kAudioUnitSubType_NBandEQ。 这里是我的初始化EQ的代码: var cd:AudioComponentDescription = AudioComponentDescription(componentType: OSType(kAudioUnitType_Effect),componentSubType: OSType(kAudioUnitSubType_NBandEQ),componentManufacturer: OSType(kAudioUnitManufacturer_Apple),componentFlags: 0,componentFlagsMask: 0) // Add the node to the graph status = AUGraphAddNode(graph, &cd, &MyAppNode) println(status) // Once the graph has been opened get an instance of the equalizer status = AUGraphNodeInfo(graph, self.MyAppNode, nil, &MyAppUnit) println(status) var eqFrequencies: [UInt32] = [ 32, 250, 500, 1000, 2000, 16000 […]

如何播放和读取.caf PCMaudio文件

我有一个应用程序,从iPod库中select一首歌曲,然后将该歌曲作为“.caf”文件复制到应用程序的目录中。 我现在需要播放,同时从Accelerate框架将该文件读入Apples FFT,这样我就可以像声谱图一样可视化数据。 这里是FFT的代码: void FFTAccelerate::doFFTReal(float samples[], float amp[], int numSamples) { int i; vDSP_Length log2n = log2f(numSamples); //Convert float array of reals samples to COMPLEX_SPLIT array A vDSP_ctoz((COMPLEX*)samples,2,&A,1,numSamples/2); //Perform FFT using fftSetup and A //Results are returned in A vDSP_fft_zrip(fftSetup, &A, 1, log2n, FFT_FORWARD); //Convert COMPLEX_SPLIT A result to float array to be returned […]

如何在iPhone上录制用户生成的声音输出

我有一系列的声音,用户将使用我的应用程序播放,重新排列和编辑等。 当用户完成后,我希望他们能够保存他们的工作,并将其录制到MP3中。 我不想通过扬声器播放,并用麦克风录音,因为这会导致低音质和干扰。 我想不出有什么办法可以做到这一点,不需要额外的硬件和/或电脑。 我怎样才能使用他们的设备呢?

无效的文件输出AVAssetExport

当我运行我的应用程序,然后单击保存button来保存混合在一起的两个文件我的应用程序崩溃说无效的文件输出。 我不明白为什么这个错误出现,因为两个文件混合是MP3和输出文件是MP3。 码: @IBAction func mixButton (sender:AnyObject!) { let oldAsset = self.player.currentItem.asset let type = AVMediaTypeAudio let audioFile = NSBundle.mainBundle().URLForResource("file1", withExtension: "mp3") let asset1 = AVURLAsset(URL: audioFile, options: nil) let arr2 = asset1.tracksWithMediaType(type) let track2 = arr2.last as AVAssetTrack let duration : CMTime = track2.timeRange.duration let comp = AVMutableComposition() let comptrack = comp.addMutableTrackWithMediaType(type, preferredTrackID: Int32(kCMPersistentTrackID_Invalid)) […]

AudioDataPacketCount返回ValueUnknown

我正在使用iOS的“audio队列服务”播放AAC( kAudioFormatMPEG4AAC )文件。 它玩的很好,所以我的代码工作。 现在我正在寻求function。 为此,我需要audio数据包的总数。 当我的属性监听器proc收到kAudioFileStreamProperty_ReadyToProducePackets我做: UInt64 totalPackets; UInt32 size = sizeof(totalPackets); OSStatus status; status = AudioFileStreamGetProperty(inAudioFileStream, kAudioFileStreamProperty_AudioDataPacketCount, &packetCountSize, &myData->totalPackets); 问题是AudioFileStreamGetProperty()在debugging器中打印时返回kAudioFileStreamError_ValueUnknown ( 1970170687 )。 难道我做错了什么?

在button上播放声音(AVaudio播放器)返回零string参数

我试图按button播放声音。 以前,我使用的Audiotoolbox工作得很好,具有相同的文件types。 但是,我需要改变使用AvAudioPlayer,因为它不使用铃声音量。 所以上周我开发了一个使用audio播放器播放声音的理解。 我使用完全相同的代码在我的应用程序上工作。 不过,尽pipe尝试无数次这个应用程序将无法使用AVFoundation / AudioPlayer。 我试图添加新的文件,新的button,改变文件的扩展名。 文件名在资源文件夹中。 我没有拼错这个名字。 确切的问题是,当我试图find我的文件时,它返回一个零string参数: 终止应用程序,由于未捕获exception“NSInvalidArgumentException”,原因:' * – [NSURL initFileURLWithPath:]:nilstring参数' 我已经看过关于这个每个论坛的post,但没有一个会帮助我。 我只能认为我的项目中的潜在问题可能是资源文件夹,而不是实际的AVAudioPlayer代码,因为我有这个确切的代码在另一个项目上工作相同。 任何帮助将不胜感激,因为我难住。 这是重要的代码: 这是在我的 @interface MainViewController : UIViewController @property (strong, nonatomic) AVAudioPlayer *theAudio; – (IBAction)test:(id)sender; 这是在我的 @synthesize theAudio; – (IBAction)test:(id)sender { NSString *path = [[NSBundle mainBundle] pathForResource:@"beast" ofType:@"wav" ]; self.theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil]; [self.theAudio play]; } […]

iOSaudio单元播放与不断的噪音

我正在使用audio单元进行audio播放。 我已经从http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html下载了音源,并尝试使用它。 出于某种原因,我需要使用ulaw而不是线性PCM。 这是我的audio格式设置: AudioStreamBasicDescription streamFormat; streamFormat.mSampleRate = 8000; streamFormat.mFormatID = kAudioFormatULaw; streamFormat.mFormatFlags = 0; streamFormat.mFramesPerPacket = 1; streamFormat.mBytesPerFrame = 2; streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame; streamFormat.mChannelsPerFrame = 1; streamFormat.mBitsPerChannel = 16; 当我运行示例代码时,我得到一个不断的噪音。 有没有人可以帮助解决这个问题? 非常感谢。

使用audio的背景和前景应用程序

我做了一些初步testing,并有一个好主意,答案是否定的。 但只需要确认:背景和前景应用程序可以共享audio播放设备? (后台应用程序将是我的。前台应用程序将来自第三方)

在后台工作的AVAssetExportSession

我试图在后台应用程序中pipe理AVAssetExportSession工作。 我有iOS 6设备并在那里testing。 所以即时通讯audio混合,并尝试导出audio。 当应用程序在前台即时通讯使得一切正常,但如果即时通讯到后台即时获取AVAssetExportSessionStatusFailed,并必须从头开始创build它。 那么,是否有可能在后台进行混音工作呢? 我尝试在NSOperationQueue中使[exportSession exportAsynchronouslyWithCompletionHandler:]或获取全局队列 – 但结果是相同的 – 当应用程序在后台运行并发送失败后停止。 有没有人有AVAssetExportSession在后台工作的例子?