如何仅在 AVPlayer 中的视频文件中播放音频
How to play Audio only in a video file in AVPlayer
即使 url 流既有音频又有视频,有没有办法只在 AVPlayer
中播放音频?
将您的视频播放器大小设为 0x0 或将其放在屏幕之外。
可以。我已经通过本地 mp4 视频进行了验证。 AVPlayerItem
加载后,您必须禁用视频轨道。
最简单的实现如下所示。
let item = AVPlayerItem(url: url)
var token: NSKeyValueObservation!
token = item.observe(\.tracks) { item, _ in
item.tracks
.filter { [=10=].assetTrack?.mediaType == .video }
.forEach { [=10=].isEnabled = false }
token.invalidate()
}
let player = AVPlayer(playerItem: item)
player.play()
或者,您可以添加虚拟视频输出。但是,这仍然会消耗资源。
let item = AVPlayerItem(url: url)
item.add(AVPlayerItemVideoOutput())
let player = AVPlayer(url: item)
即使 url 流既有音频又有视频,有没有办法只在 AVPlayer
中播放音频?
将您的视频播放器大小设为 0x0 或将其放在屏幕之外。
可以。我已经通过本地 mp4 视频进行了验证。 AVPlayerItem
加载后,您必须禁用视频轨道。
最简单的实现如下所示。
let item = AVPlayerItem(url: url)
var token: NSKeyValueObservation!
token = item.observe(\.tracks) { item, _ in
item.tracks
.filter { [=10=].assetTrack?.mediaType == .video }
.forEach { [=10=].isEnabled = false }
token.invalidate()
}
let player = AVPlayer(playerItem: item)
player.play()
或者,您可以添加虚拟视频输出。但是,这仍然会消耗资源。
let item = AVPlayerItem(url: url)
item.add(AVPlayerItemVideoOutput())
let player = AVPlayer(url: item)