iphone - 在 iphone 上播放 pcm 数据

标签 iphone audio pcm audiounit audioqueue

我需要在 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

关于iphone - 在 iphone 上播放 pcm 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884236/

相关文章:

ios - NSMutableArray 按标题排序

ios - 如何在 iOS 中验证后显示 google 帐户屏幕?

iphone - 如何做最新的FB UIView 动画?

iphone - 修改现有iPhone相机屏幕

ios - AirPlay:通过显示可用设备弹出窗口重定向音频

c++ - 将 WebRTC (AudioTrackSinkInterface) 原始音频写入光盘

jquery - 根据按钮的状态执行代码

ios - 如何在iphone sdk中播放原始pcm数据

android - 更改 Android 上 AudioRecord 的比特率

c++ - Windows 上 C++ 中的运行时声音生成