我正在尝试实现一个小型应用程序,您可以在其中在 watch 的后台下载 MP4 视频,并在下载后播放。
使用 WKInterfaceMovie.setVideoURL 可以很好地处理 https 链接,但我想自定义加载 UI。
下载视频文件后,我将其移动到共享组:
originalURL : Optional("/private/var/mobile/Containers/Data/PluginKitPlugin/FD57E33D-4657-497B-9823-A53D289CDF0B/Library/Caches/com.apple.nsurlsessiond/Downloads/com.test.TestWatchVideo.watchkitapp.watchkitextension/CFNetworkDownload_jKLIrU.tmp")
destinationURL : Optional("/private/var/mobile/Containers/Shared/AppGroup/018DA2BA-EB53-45DA-B3EA-792D4879E601/Library/Caches/SampleVideo_360x240_1mb.mp4")
我正在使用 removeItemAtURL
(如果旧文件存在)然后使用 copyItemAtURL
移动原始文件。
=> 但是 在尝试 presentMediaPlayerControllerWithURL
时,它会在播放视频之前关闭并说:
Error: Error Domain=com.apple.watchkit.errors Code=4 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (1), NSUnderlyingError=0x16d71f20 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}, NSLocalizedDescription=The operation could not be completed}
我在 StackOverflow 和论坛上阅读了很多主题,但没有一个对我有帮助。
谢谢!
最佳答案
OK,这是WatchKit App的App Group Capabilities的问题;该应用程序具有良好的权利,WatchKit App Extension 也可以,但 WatchKit App 没有 => 仅在尝试播放视频时不允许操作。
无论您的配置如何,这都适用于模拟器。
关于ios - WatchOS - presentMediaPlayerControllerWithURL 不播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407056/