【发布时间】:2020-11-07 23:50:20
【问题描述】:
我的屏幕裂了,我的手机没有声音功能。我用相机录制了一段视频。当我从didFinishPickingMediaWithInfo 选择视频网址时,我试图检查视频是否有声音,但player.currentItem?.asset.tracks 说视频确实有声音(设备和录制的视频肯定没有声音)。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
// ...
guard let url = info[UIImagePickerController.InfoKey.mediaURL] as? URL else { return }
// ...
let asset = AVURLAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)
if let tracks = player.currentItem?.asset.tracks {
switch tracks.count {
case 0:
print("tracks -0: audio only")
case 1:
print("tracks -1: video only ")
case 2:
print("tracks -2: audio and video") // this prints when the video does have sound (recorded before the screen cracked)
default:
print("tracks -default: audio and video") // *** this always prints when the video doesn't have sound (recorded after the screen cracked) ***
}
}
}
【问题讨论】:
标签: ios swift avfoundation avplayer avasset