【问题标题】:record live streaming audio录制实时流媒体音频
【发布时间】:2010-07-25 00:04:48
【问题描述】:

我实际上正在制作一个应用程序,它必须在 ipad 上播放和录制来自互联网的流式音频。音频流已经完成,我很快就要到录音部分了,我不知道如何继续。

能给个提示吗???主意?它必须在录制到 AAC 或 MP3 的同时播放。

谢谢。

【问题讨论】:

标签: objective-c streaming ipad core-audio audio-recording


【解决方案1】:

您需要使用较低级别的 AudioQueue API,并使用 AudioSession API 来设置音频会话。

然后您需要填写一个AudioStreamBasicDescription 结构并使用AudioQueueNewInput() 创建一个新的输入队列,并包含用于处理输入缓冲区的回调函数。

然后您需要使用AudioQueueAllocateBuffer()AudioQueueEnqueueBuffer() 创建3 个缓冲区。只有这样您才能准备好致电AudioQueueStart()。您还应该处理音频会话中断,并处理停止音频队列。

这只会为您提供包含未压缩 16 位整数 PCM 音频数据的缓冲区流。你仍然需要压缩数据,这是另一种涉及使用AudioConverter API 的蠕虫,我没有在 iPhone OS 上做过,所以我不知道在那里会起作用。

【讨论】:

  • 嗨卢修斯谢谢,你能解释一下xD我是新人,我迷路了:s
  • 您有什么具体问题吗?
  • 您是否有执行此操作(即录制)的代码示例? :(
【解决方案2】:

请看一下这个框架。录制时提供数据供录制Streaming Kit

通过 HTTP 播放 MP3

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];

[audioPlayer play:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"];

并使用此委托将其数据附加到 NSMutabledata 以离线播放。

在播放前截取 PCM 数据

 [audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
   {
   ...
   }];

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 2012-11-09
    • 2012-06-07
    • 2011-05-30
    • 2012-06-27
    • 1970-01-01
    • 2016-03-26
    • 2012-05-25
    相关资源
    最近更新 更多