如何仅在AVPlayer中的视频文件中播放音频

时间:2016-11-15 06:14:45

标签: ios swift avplayer

有没有办法只在AVPlayer播放音频即使网址流同时包含音频和视频?

2 个答案:

答案 0 :(得分:0)

将视频播放器的大小设置为0x0或将其放在屏幕之外。

答案 1 :(得分:0)

可以。我已经使用本地mp4视频进行了验证。 AVPlayerItem加载视频轨道后,您必须禁用它们。

最简单的实现是这样的。

let item = AVPlayerItem(url: url)
var token: NSKeyValueObservation!
token = item.observe(\.tracks) { item, _ in
    item.tracks
        .filter { $0.assetTrack?.mediaType == .video }
        .forEach { $0.isEnabled = false }
    token.invalidate()
}
let player = AVPlayer(playerItem: item)
player.play()

或者,您可以添加虚拟视频输出。但是,这仍然会消耗资源。

let item = AVPlayerItem(url: url)
item.add(AVPlayerItemVideoOutput())
let player = AVPlayer(url: item)