如何检查 AVPlayer 中的音频通道数?

Posted

技术标签:

【中文标题】如何检查 AVPlayer 中的音频通道数?【英文标题】:How to check audio channel counts in AVPlayer? 【发布时间】:2017-02-20 16:42:48 【问题描述】:

目前我正在尝试开发没有情节提要的在线视频播放应用程序。我能够在 AVPlayer 上播放视频,但遇到了音频通道问题(多合一 .mp4,未分离)。有些视频不止一个(如英语、德语等)。 这是代码示例

 if let url  = URL(string: urlString)
            let player = AVPlayer(url: url)
            let playerLayer = AVPlayerLayer(player: player)
            self.layer.addSublayer(playerLayer)
            playerLayer.frame = self.frame


            player.play()

问题如何获得音频通道数的数量并能够切换它们? 提前致谢

【问题讨论】:

【参考方案1】:

1:在您的情况下,您可以获取currentItem 资产:

player.currentItem.asset

或加载 AVURLAsset 并将其与您的 AVPlayer 一起使用。

2:如果您指定 AVMediaTypeAudio,则 tracks(withMediaType:) 应该从 AVAsset 中返回一个带有音频通道的数组。

3:然后您可以检查数组中的对象数量。

【讨论】:

这是音频文件中的轨道数,而不是通道数..

以上是关于如何检查 AVPlayer 中的音频通道数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 <audio> 标签中检测 mp3 中的音频通道数?

AVPlayer 播放单声道音频立体声->单声道

Remote I/O 音频单元是不是设置缓冲区中的通道数?

使用avplayer播放音频时如何将音频缓存到本地

FFmpeg 检查音频通道是不是静音

使用 AVPlayer 播放音频时如何在 UIWebView 中暂停音频