iOS中压缩的4声道音频文件支持的格式是什么?

iOS中压缩的4声道音频文件支持的格式是什么?,第1张

概述首先,我是iOS和音频编程的菜鸟,所以如果我不使用正确的技术术语,请耐心等待,但我会尽我所能! 我们想做什么: 在我们正在开发的iOS应用程序中,我们希望能够在4种不同的输出中播放声音以拥有迷你环绕声系统.也就是说,我们希望通过耳机播放左右声道,而中心和中心环绕声通过连接到闪电端口的音频硬件播放.由于音频文件将从远程服务器流式传输/下载,因此不能使用原始(PCM)音频文件. 问题: 从iOS 6开 首先,我是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.caffile type ID:   caffNum Tracks:     1----Data format:     4 ch,44100 Hz,'lpcm' (0x0000000C) 16-bit little-endian signed integer                no channel layout.estimated duration: 582.741338 secaudio bytes: 205591144audio packets: 25698893bit rate: 2822400 bits per secondpacket size upper bound: 8maximum packet size: 8audio data file offset: 4096optimizedaudio 25698893 valID frames + 0 priming + 0 remainder = 25698893source bit depth: I16

AAC编码的格式信息:

file:           4ch_44100_AAC.m4afile type ID:   m4afNum Tracks:     1----Data format:     4 ch,'aac ' (0x00000000) 0 bits/channel,0 bytes/packet,1024 frames/packet,0 bytes/frameChannel layout: Quadraphonicestimated duration: 582.741338 secaudio bytes: 18338514audio packets: 25099bit rate: 251730 bits per secondpacket size upper bound: 1039maximum packet size: 1039audio data file offset: 106496optimizedaudio 25698893 valID frames + 2112 priming + 371 remainder = 25701376source bit depth: I16format List:[ 0] format:      4 ch,0 bytes/frameChannel layout: Quadraphonic----

对于无损编码音频文件:

file:           4ch_44100_ALAC.caffile type ID:   caffNum Tracks:     1----Data format:     4 ch,'alac' (0x00000001) from 16-bit source,4096 frames/packetChannel layout: 4.0 (C L R Cs)estimated duration: 582.741338 secaudio bytes: 83333400audio packets: 6275bit rate: 1143862 bits per secondpacket size upper bound: 16777maximum packet size: 16777audio data file offset: 20480optimizedaudio 25698893 valID frames + 0 priming + 3507 remainder = 25702400source 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声道音频文件支持的格式是什么?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存