如何在swift 2.2中通过手表按钮启动电话AV控制器上的电影?

时间:2016-08-01 14:57:07

标签: ios swift watch-os-2

在我的手表上我有2个按钮,IBAction playMovie和stopMovie。我在我的iPhone中有AVViewController,在我的手机中有movie.mp4图像资源。如何从手表按钮触发在手机目标上的AVViewController上开始和结束电影?

我在我的手表控制器上尝试了player.play(),这个代码在iPhone视图控制器上,但它在手表代码上带来错误'使用未解析的标识符'播放器。或者我调用函数playmovie()它会带来红旗错误'预期声明'。

iPhone代码:     func playmovie(){

    let videoURL = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("video1bunny", ofType:"mp4")!)
    let player = AVPlayer(URL: videoURL)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    presentViewController(playerViewController, animated: true) { () -> Void in
        player.play()

}

1 个答案:

答案 0 :(得分:1)

您无法从watchOS控件转换到iOS场景,或者让watchOS操作调用iOS方法或呈现iOS视图控制器。

您的观看代码在手表上运行,您的iOS代码在手机上运行。一个应用程序将无法调用或执行其他应用程序的代码。

使用Watch Connectivity

可以使用WatchConnectivity框架完成您想要的工作,该框架允许您在观看应用与其配对的iOS应用之间传输数据。

例如,观看应用可以使用WCSession sendMessage向iOS应用发送特定的(“playMovie”或“stopMovie”)消息。

iOS应用WCSessionDelegate didReceiveMessage将处理从手表收到的特定消息,然后手机可以在本地开始或停止播放电影。

更多信息

This SO answer介绍如何设置和开始使用Watch Connectivity。

有关更多细节,请参阅此Introducing Watch Connectivity WWDC视频以及开发人员库WCSession Class ReferenceWCSessionDelegate Protocol Reference文档。