在我的手表上我有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()
}
答案 0 :(得分:1)
您无法从watchOS控件转换到iOS场景,或者让watchOS操作调用iOS方法或呈现iOS视图控制器。
您的观看代码在手表上运行,您的iOS代码在手机上运行。一个应用程序将无法调用或执行其他应用程序的代码。
可以使用WatchConnectivity
框架完成您想要的工作,该框架允许您在观看应用与其配对的iOS应用之间传输数据。
例如,观看应用可以使用WCSession
sendMessage
向iOS应用发送特定的(“playMovie”或“stopMovie”)消息。
iOS应用WCSessionDelegate
didReceiveMessage
将处理从手表收到的特定消息,然后手机可以在本地开始或停止播放电影。
This SO answer介绍如何设置和开始使用Watch Connectivity。
有关更多细节,请参阅此Introducing Watch Connectivity WWDC视频以及开发人员库WCSession Class Reference
和WCSessionDelegate Protocol Reference
文档。