如何在Apple TV上播放视频?

时间:2015-09-10 05:32:24

标签: xcode apple-tv tvos

我开始了一个空白的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应用的应用启动时播放示例视频的正确方法是什么?

3 个答案:

答案 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用户访问权限来获取特定视频的流链接。