HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS中压缩的4声道音频文件支持的格式是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,我是iOS和音频编程的菜鸟,所以如果我不使用正确的技术术语,请耐心等待,但我会尽我所能!

我们想做什么:

在我们正在开发的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)

是否有人暗示音频数据格式可能出错?

解决方法

联系Apple支持后,答案是这对于当前发货的系统配置是不可能的

“感谢您联系Apple开发人员技术支持(DTS).我们的工程师已经审核了您的请求,并得出结论认为,目前出货的系统配置没有支持方法来实现所需的功能.”

大佬总结

以上是大佬教程为你收集整理的iOS中压缩的4声道音频文件支持的格式是什么?全部内容,希望文章能够帮你解决iOS中压缩的4声道音频文件支持的格式是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。