我从包含编码PCM缓冲区的套接字收到一系列UDP数据包.解码后,我留下了一个int16*音频缓冲区,我想立即播放.
预期的逻辑是这样的:
init(){
initTrack(track, output, channels, sample_rate, ...);
}
onReceiveBufferFromSocket(NSData data){
//Decode the buffer
int16 * buf = handle_data(data);
//Play data
write_to_track(track, buf, length_of_buf, etc);
}
Run Code Online (Sandbox Code Playgroud)
我不确定与播放缓冲区有关的所有事情.在Android上,我可以通过创建一个AudioTrack对象来实现这一点,通过指定采样率,格式,通道等来设置它...然后只需用缓冲区调用"write"方法(就像我希望的那样)我可以在上面的伪代码中)但在iOS上我很快就会出现.
我尝试使用音频文件流服务,但我猜我做错了,因为没有声音出现,我觉得这些功能本身并没有实际播放.我还试图理解音频队列服务(我认为它可能接近我想要的),但是我无法找到任何简单的代码示例来使用它.
任何帮助将不胜感激,特别是以示例代码的形式.
| 归档时间: |
|
| 查看次数: |
9609 次 |
| 最近记录: |