大佬教程收集整理的这篇文章主要介绍了iOS中压缩的4声道音频文件支持的格式是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们想做什么:
在我们正在开发的iOS应用程序中,我们希望能够在4种不同的输出中播放声音以拥有迷你环绕声系统.也就是说,我们希望通过耳机播放左右声道,而中心和中心环绕声通过连接到闪电端口的音频硬件播放.由于音频文件将从远程服务器流式传输/下载,因此不能使用原始(PCM)音频文件.
问题:
从iOS 6开始,Apple就可以使用多路径配置来播放音频文件……这就是我们需要的……但是,当我们尝试播放4声道音频文件时,AAC -encoded并封装在m4a(或CAF)文件格式中,我们收到以下错误:
错误:[0x19deee000] AVAudioFile.mm:86:AVAudioFileImpl:错误1718449215
(这是“kAudioFileUnsupportedDataFormatError”的status code)
当我们使用相同的音频编码为无损(ALAC)时,我们会得到相同的错误,但是在播放相同的音频信号(PCM格式)时我们不会收到此错误.
在AAC和ALAC中,当我们使用立体声音频文件或编码的5.1音频文件(与4通道音频文件相同)时,我们都不会收到错误.
我们尝试了什么:
>编码
该文件使用Apple Mac OS X提供的音频工具进行编码:afconvert使用此命令:
afconvert -v -f’m4af’-d“aac @ 44100”4ch_master.caf 4ch_44100_AAC.m4a
和
afconvert -v -f’caff’-d“alac @ 44100”4ch_master.caf 4ch_44100_ALAC.caf
在无损编码的情况下.
音频格式,由主(PCM)音频文件的afinfo给出:
File: 4ch_master.caf File type ID: caff Num Tracks: 1 ---- Data format: 4 ch,44100 Hz,'lpcm' (0x0000000C) 16-bit little-endian signed Integer no chAnnel layout. estimated duration: 582.741338 sec audio bytes: 205591144 audio packets: 25698893 bit rate: 2822400 bits per second packet size upper bound: 8 maximum packet size: 8 audio data file offset: 4096 optimized audio 25698893 valid frames + 0 priming + 0 remainder = 25698893 source bit depth: I16
AAC编码的格式信息:
File: 4ch_44100_AAC.m4a File type ID: m4af Num Tracks: 1 ---- Data format: 4 ch,'aac ' (0x00000000) 0 bits/chAnnel,0 bytes/packet,1024 frames/packet,0 bytes/frame ChAnnel layout: Quadraphonic estimated duration: 582.741338 sec audio bytes: 18338514 audio packets: 25099 bit rate: 251730 bits per second packet size upper bound: 1039 maximum packet size: 1039 audio data file offset: 106496 optimized audio 25698893 valid frames + 2112 priming + 371 remainder = 25701376 source bit depth: I16 format list: [ 0] format: 4 ch,0 bytes/frame ChAnnel layout: Quadraphonic ----
对于无损编码音频文件:
File: 4ch_44100_ALAC.caf File type ID: caff Num Tracks: 1 ---- Data format: 4 ch,'alac' (0x00000001) from 16-bit source,4096 frames/packet ChAnnel layout: 4.0 (C L R Cs) estimated duration: 582.741338 sec audio bytes: 83333400 audio packets: 6275 bit rate: 1143862 bits per second packet size upper bound: 16777 maximum packet size: 16777 audio data file offset: 20480 optimized audio 25698893 valid frames + 0 priming + 3507 remainder = 25702400 source bit depth: I16 ----
>代码
在代码部分,在开始时,我们使用AVAudioPlayer API跟踪session 505 of WWDC12中提供的实现.在那个级别,多路由似乎没有可靠的工作……我们没有怀疑这可能与音频格式有关,所以我们继续尝试使用AVAudioENGIne API,在WWDC14的会话502和相关的示例代码中展示它.我们为主4声道音频文件(经过一些调整后)进行了多路由工作,但是当我们调用scheduleFile时我们遇到了上面提到的错误,如下面的代码片段所示(注意:我们正在使用Swift和所有必要的音频图形设置已完成但未在此处显示):
var playerNode: AVAudioPlayerNode! ... ... let audioFileToPlay = AVAudioFile(forReading: URLOfTheAudioFlE) playerNode.scheduleFile(audioFileToPlay,atTime: nil,completionHandler: nil)
是否有人暗示音频数据格式可能出错?
以上是大佬教程为你收集整理的iOS中压缩的4声道音频文件支持的格式是什么?全部内容,希望文章能够帮你解决iOS中压缩的4声道音频文件支持的格式是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。