在 iPhone 上播放 PCM 数据



我需要在iPhone上实时播放线性PCM数据。

通过 RTSP 获得一个实时数据流,我目前可以从 iPhone 读出它,将其保存到文件中,在支持 PCM 的桌面音频播放器上播放,因此我认为传输还可以。

现在我卡

住了,我完全卡住了! 不知道如何处理包含数据的 NSData 对象。

我做了一些研究,最终得到了 AudioUnits,但我无法将我的 NSdata 分配给音频缓冲区,我不知道如何。

对于我的实例,我分配了回调:

AURenderCallbackStruct input;
input.inputProc = makeSound;
input.inputProcRefCon = self;

并具有"makeSound"功能:

   OSStatus makeSound(
                void *inRefCon, 
                AudioUnitRenderActionFlags  *ioActionFlags, 
                const AudioTimeStamp        *inTimeStamp, 
                UInt32                      inBusNumber, 
                UInt32                      inNumberFrames, 
                AudioBufferList             *ioData)
      {
            //so what to do here?
            //ioData->mBuffers[0].mdata = [mySound bytes]; does not work, nor does
            //ioData->mBuffers = [mySound byes];
            return noErr;
       }

我的拨款在杰内拉尔是错误的吗?

我需要了解/学习/实施什么? 我是一个完整的音频新手,所以我的建议是,我不需要几个缓冲区,因为当我从 RTSP 获得新的声音包时,旧的就结束了,因为它是一个实时流(我基于我的录音,它只是附加了没有查找演示时间戳的字节, 因为我无论如何都没有收到一些)

干杯

我不知道

这是否正是您要查找的内容,但是Matt Gallagher的一些AudioStreamer代码可能对您有所帮助。特别是,看看他如何处理音频缓冲。http://cocoawithlove.com/2010/03/streaming-mp3aac-audio-again.html

相关内容

  • 没有找到相关文章

最新更新