我正在建立什么,我希望是一个简单的macOS应用程序,将从一个popUP按钮选择本地存储视频。
该应用程序是两个窗口1) AVPlayerView和2)一个简单的控制面板,允许用户选择并在另一个窗口上播放标记的视频。
所有这些在XCode中都能很好地工作。当保存的网址被选择时,它被制作成一个AVAsset,它被制作成一个AVPlayerItem。在接下来的过程中,我已经成功地尝试了两种方法(在Xcode中):创建1) PublishSubect或2) PublishSubject。在AVPlayerview窗口的视图控制器中,我订阅了控制面板的发布主题,并使用AVPlayerItem更新AVplayerView的播放器
destinationVC.videoSubject.subscribe(
onNext: { [weak self] item in
self?.player.replaceCurrentItem(with: item)
}
).disposed(by: bag)或者我用类似的方式给播放器注射。当我在XCode中运行应用程序时,这两个选项都可以完美地工作。我遇到的问题是,当我将其存档以在我的计算机上运行应用程序时,当我选择要播放的视频时,应用程序崩溃。
我将这个任务隔离到一个后台线程,希望能更好地找出错误,但由此产生的崩溃报告对我来说没有多大意义:
Thread 2 Crashed:: Dispatch queue: Background
0 [myinfo].STSVideoPlayer 0x000000010e655476 closure #1 in closure #1 in VideoViewController.prepare(for:sender:) + 134 (VideoViewController.swift:40)
1 [myinfo].STSVideoPlayer 0x000000010e655499 thunk for @escaping @callee_guaranteed () -> () + 25
2 libdispatch.dylib 0x00007fff6e6d56c4 _dispatch_call_block_and_release + 12
3 libdispatch.dylib 0x00007fff6e6d6658 _dispatch_client_callout + 8
4 libdispatch.dylib 0x00007fff6e6dbc44 _dispatch_lane_serial_drain + 597
5 libdispatch.dylib 0x00007fff6e6dc5d6 _dispatch_lane_invoke + 363
6 libdispatch.dylib 0x00007fff6e6e5c09 _dispatch_workloop_worker_thread + 596
7 libsystem_pthread.dylib 0x00007fff6e930a3d _pthread_wqthread + 290
8 libsystem_pthread.dylib 0x00007fff6e92fb77 start_wqthread + 15我,显然,在这里,超出了我的能力范围。如果您有任何见解,我们将不胜感激!
发布于 2020-09-11 07:45:47
我找到了一份更详细的崩溃报告,结果发现我是在强行打开一些nils。我不确定这是如何在XCode中通过的,但现在一切都很顺利。
https://stackoverflow.com/questions/63831314
复制相似问题