response-native-video v4.0.1 вызывает сбои на iOS в [RCTVideo setFilter] - PullRequest
0 голосов
/ 30 ноября 2018

У меня возникают некоторые проблемы с последней версией'act-native-video '(4.0.1), обновленной с версии 3.2.1

После обновления все нормально работает на Android, но когдаприходит в iOS каждый раз, когда базовый AVPlayer должен установить источник данного носителя, это вызывает сбой.Когда проигрыватель инициализируется, он вызывает [RCTVideo setSrc] , который вызывает [RCTVideo setFilter] , который затем падает на [AVPlayerItem _setVideoCompositionFrameDuration] :

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVPlayerItem setVideoComposition:] video composition must have a positive renderSize'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010b5e61bb __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x00000001096d0735 objc_exception_throw + 48
    2   AVFoundation                        0x000000010a0be357 -[AVPlayerItem _setVideoCompositionFrameDuration:] + 0
    3   news_app                            0x00000001088764ea -[RCTVideo setFilter:] + 330
    4   news_app                            0x000000010886ca13 __19-[RCTVideo setSrc:]_block_invoke_2 + 179
    5   news_app                            0x000000010886e35a -[RCTVideo playerItemPrepareText:assetOptions:withCallback:] + 3450
    6   news_app                            0x000000010886e88f -[RCTVideo playerItemForSource:withCallback:] + 1103
    7   news_app                            0x000000010886c92f __19-[RCTVideo setSrc:]_block_invoke + 175
    8   libdispatch.dylib                   0x000000010f8e4595 _dispatch_call_block_and_release + 12
    9   libdispatch.dylib                   0x000000010f8e5602 _dispatch_client_callout + 8
    10  libdispatch.dylib                   0x000000010f8f299a _dispatch_main_queue_callback_4CF + 1541
    11  CoreFoundation                      0x000000010b54b3e9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    12  CoreFoundation                      0x000000010b545a76 __CFRunLoopRun + 2342
    13  CoreFoundation                      0x000000010b544e11 CFRunLoopRunSpecific + 625
    14  GraphicsServices                    0x00000001118451dd GSEventRunModal + 62
    15  UIKitCore                           0x0000000116d4a81d UIApplicationMain + 140
    16  news_app                            0x0000000108524ce0 main + 112
    17  libdyld.dylib

Я устанавливаю Фильтр Опора для iOS, как описано в документации .Я не настолько опытен в разработке под iOS и Objective-C, кто-нибудь еще видел эту ошибку раньше, когда использовал новейшую версию response-native-video ?

Моя реализация компонента реакциивыглядит так:

<VideoPlayer
    ref={(ref) => { this.player = ref }}
    source={{ uri: [someURL] }}
    allowsExternalPlayback={allowsExternalPlayback}
    audioOnly={audioOnly}
    bufferConfig={bufferConfig}
    ignoreSilentSwitch={ignoreSilentSwitch}
    muted={muted}
    paused={paused}
    playInBackground={playInBackground}
    playWhenInactive={playWhenInactive}
    progressUpdateInterval={progressUpdateInterval}
    rate={rate}
    repeat={loop}
    resizeMode={resizeMode}
    selectedAudioTrack={selectedAudioTrack}
    selectedTextTrack={selectedTextTrack}
    stereoPan={stereoPan}
    textTracks={textTracks}
    useTextureView={useTextureView}
    volume={volume}
    style={fullScreen ? styles.fullScreen : inline}
    onAudioBecomingNoisy={() => this.onAudioBecomingNoisy()}
    onLoadStart={() => this.onLoadStart()}
    onLoad={e => this.onLoad(e)}
    onProgress={e => this.progress(e)}
    onEnd={() => this.onEnd()}
    onError={e => this.onError(e)}
    onTimedMetadata={e => onTimedMetadata(e)}
    filter={FilterType.NONE}
/>
...