Проблемы с RxSwift и AVKit

Я создаю то, что, как я надеюсь, будет простым приложением для macOS, которое будет локально хранить видео, выбранное с помощью кнопки всплывающего окна.

Приложение представляет собой два окна: 1) AVPlayerView и 2) простую панель управления, которая позволяет пользователю выбирать и воспроизводить отмеченные видео в другом окне.

Все это очень хорошо работает в XCode. Когда выбран сохраненный URL-адрес, он превращается в AVAsset, который затем превращается в AVPlayerItem. Следующий процесс, который я успешно пробовал (в Xcode) двумя способами: создать 1) PublishSubect или 2) PublishSubject. В контроллере представления для окна AVPlayerview я подписываюсь на тему публикации панели управления и либо обновляю проигрыватель AVplayerView с помощью AVPlayerItem

 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

Я здесь явно выше головы. Любое понимание, которое вы могли бы получить, было бы очень признательно!


person ismaupin    schedule 10.09.2020    source источник


Ответы (1)


Я нашел более подробный отчет о сбое, и оказалось, что я принудительно разворачивал некоторые ноли. Я не уверен, как это произошло в XCode, но теперь все работает плавно.

person ismaupin    schedule 10.09.2020