tvOS:AVPlayer 音频播放但没有视频
tvOS: AVPlayer Audio Plays but there's no video
我将此代码作为 tvOS 应用程序的一部分
import Foundation
import UIKit
import AVFoundation
import AVKit
class videoPlayer: UIViewController {
var thePlayer: AVPlayer?
var movieToPlay: AVPlayerItem?
let movieURL="http://trailers.apple.com/movies/independent/walkingwiththeenemy/walkingwiththeenemy-tlr1_720p.mov"
override func viewDidLoad(){
let theVideoPlayer = AVPlayerViewController()
theVideoPlayer.player = thePlayer
self.addChildViewController(theVideoPlayer)
self.view.addSubview(theVideoPlayer.view)
theVideoPlayer.view.frame = self.view.frame
let movieToPlay = AVPlayerItem(URL: NSURL(string: movieURL)!)
thePlayer = AVPlayer(playerItem: movieToPlay)
self.thePlayer!.play()
}
}
加载视图时,代码播放音频但不播放视频。
当一个人滑动 Apple TV 遥控器时,会出现一个时间轴,随着音频播放,右侧显示持续时间 0:00,左侧显示持续时间 0:00。时间线的左端还出现了一个红色的类似禁烟的标志。我的理解是,该标志表示视频格式错误,但可以播放音频(剪辑来自 Apple)。视频在其他 AppleTV 应用程序中播放。
我认为代码是正确的(它在另一个应用程序中工作),但我想不出接下来的调试步骤。谁能看到错误?
当我将上面的代码放在一个单独的 viewController 中然后从它所在的 viewController 中呈现时,上面的代码按预期工作。我不明白为什么,但是它解决了视频和音频问题。
我将此代码作为 tvOS 应用程序的一部分
import Foundation
import UIKit
import AVFoundation
import AVKit
class videoPlayer: UIViewController {
var thePlayer: AVPlayer?
var movieToPlay: AVPlayerItem?
let movieURL="http://trailers.apple.com/movies/independent/walkingwiththeenemy/walkingwiththeenemy-tlr1_720p.mov"
override func viewDidLoad(){
let theVideoPlayer = AVPlayerViewController()
theVideoPlayer.player = thePlayer
self.addChildViewController(theVideoPlayer)
self.view.addSubview(theVideoPlayer.view)
theVideoPlayer.view.frame = self.view.frame
let movieToPlay = AVPlayerItem(URL: NSURL(string: movieURL)!)
thePlayer = AVPlayer(playerItem: movieToPlay)
self.thePlayer!.play()
}
}
加载视图时,代码播放音频但不播放视频。
当一个人滑动 Apple TV 遥控器时,会出现一个时间轴,随着音频播放,右侧显示持续时间 0:00,左侧显示持续时间 0:00。时间线的左端还出现了一个红色的类似禁烟的标志。我的理解是,该标志表示视频格式错误,但可以播放音频(剪辑来自 Apple)。视频在其他 AppleTV 应用程序中播放。
我认为代码是正确的(它在另一个应用程序中工作),但我想不出接下来的调试步骤。谁能看到错误?
当我将上面的代码放在一个单独的 viewController 中然后从它所在的 viewController 中呈现时,上面的代码按预期工作。我不明白为什么,但是它解决了视频和音频问题。