我开始了一个空白的tvOS项目并创建了以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
AVPlayer *avPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:@"http://www.myurl.com/myvideo.mp4"]];
AVPlayerLayer *avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayer];
avPlayerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.view.layer addSublayer:avPlayerLayer];
[avPlayer play];
}
虽然应用加载后,模拟器中没有任何事情发生。没有视频,没有,只是我的Apple TV模拟器中的空白半透明屏幕。
从HTTP源播放Apple TV应用的应用启动时播放示例视频的正确方法是什么?
答案 0 :(得分:5)
我不喜欢与子视图等有关的答案。 对于全屏播放,我使用以下(非ARC)代码:
regex = new RegExp("([&\\?])" + name + "=\\d+", "g");
当您点按“菜单”按钮时,此功能非常简洁,动画显示并淡出回到上一个视图。此外,它与使用所有标准功能的遥控器配合使用。
答案 1 :(得分:1)
它为我工作。 对你有所帮助
-(void)playAction
{
AVPlayerViewController *viewController = [[AVPlayerViewController alloc] initWithNibName:nil bundle:nil];
viewController.player = player;
[self addChildViewController:viewController];
[self.view addSubview:viewController.view];
[viewController didMoveToParentViewController:self];
// play the video
[player play];
}
答案 2 :(得分:-1)
Swift版本 制作一个继承AVPlayerViewController的PlayViewController。 在具有播放按钮的viewcontroller中,添加这样的功能
@IBAction func onClickPlay(sender: AnyObject) {
let playerVC = PlayerViewController()
playerVC.playVideo(urlString)
[self.presentViewController(playerVC, animated: true, completion: nil)]
}
在PlayerViewController中
func playVimeoVideo(link : String) {
player = AVPlayer(URL: NSURL(string: link)!)
player?.play()
}
<强>通知强> 问题和一些答案可能会有点误导,所以你可能会认为只有网址为&#34; .mp4&#34;最后可以由Apple TV播放。我第一次见到帖子时就这么信了。这不是真的。事实上,使用AVPlayerViewController,您可以播放Vimeo流媒体视频!流视频的链接与https://vimeo.com/92655878不同。可以通过从json文件中提取它来从Vimeo站点获取它,可以从此链接下载
let link = "https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/" + videoId
为了能够获得正确的视频网址,您需要使用Vimeo Pro用户访问权限来获取特定视频的流链接。