iOSDevLog/ijkplayer

loaded rtmp live success full, but got error when re-play hls video

fukemy opened this issue · 1 comments

Hello. I got this problem, then dont know why it happened.
I just have 1 viewcontroller to play all video by destroy last and re-create new player
First, I have a list rtmp live stream video, all is work normally. Here is my function to play video:

if let camUrl = URL(string: videoUrl){
            indicator.isHidden = false
            playerController?.destroyPlayer()
            playerController?.loadPlayer(url: camUrl)
            playerController?.delegate = self
        }else{
            AlertUtils.alertMessage(vc: self, mes: Language.get("Url is not valid"))
            indicator.isHidden = true
        }

here is ijkplayer side:

func loadPlayer(url: URL) {
        IJKFFMoviePlayerController.checkIfFFmpegVersionMatch(true)
        let options = IJKFFOptions.byDefault()
        player = IJKFFMoviePlayerController(contentURL: url, with: options)
        player?.view?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        player?.view?.frame = view.bounds
        player?.scalingMode = .aspectFit
        player?.shouldAutoplay = true
        view.autoresizesSubviews = true
        view.addSubview((player?.view)!)
        
        self.view.backgroundColor = .clear
        self.addMediaControl()
        self.addAction()
        
        installMovieNotificationObservers()
        player?.prepareToPlay()
        mediaControl?.refreshMediaControl()
    }
    
    func destroyPlayer() {
        if mediaControl != nil{
            mediaControl.removeFromSuperview()
        }
        
        if player?.view != nil {
            player?.shutdown()
        }
        
        removeMovieNotificationObservers()
        
    }

When play new hls video player (using above function), i got this error:

ijkmp_set_inject_opaque(0x60000001e4e0)
ijkmp_set_inject_opaque()=void
ijkmp_set_ijkio_inject_opaque(0x60000001e4e0)
ijkmp_stop()
aout_pause_audio(1)
ijkmp_set_ijkio_inject_opaque()=void
ijkmp_stop()=0
ijkmp_shutdown_l()
aout_pause_audio(1)
aout_pause_audio(1)
2018-08-28 13:27:12.658939+0700 iCamera[34911:578132] invalidateRenderBuffer
2018-08-28 13:27:12.659158+0700 iCamera[34911:610580] IJKSDLGLView: setupDisplay not ready
2018-08-28 13:27:12.659245+0700 iCamera[34911:578132] OK setup GL
ijkmp_ios_set_view(glView=0x7fc0a7462fc0)
ijkmp_ios_set_view(glView=0x7fc0a7462fc0)=void
2018-08-28 13:27:12.660698+0700 iCamera[34911:578132] invalidateRenderBuffer
2018-08-28 13:27:12.660885+0700 iCamera[34911:610580] IJKSDLGLView:display: unable to tryLock GL active: 0
ijkmp_set_data_source(url="http://183.91.11.56:11935/vod/s4HNF1ZbOyOH_6CKEQ1o8xQS8r--RJeQgCsv88r-Yl4/27-8-2018_6h43m19s.mp4/index.m3u8")
ijkmp_set_data_source(url="http://183.91.11.56:11935/vod/s4HNF1ZbOyOH_6CKEQ1o8xQS8r--RJeQgCsv88r-Yl4/27-8-2018_6h43m19s.mp4/index.m3u8")=0
ijkmp_prepare_async()
ijkmp_prepare_async()=0
2018-08-28 13:27:12.670597+0700 iCamera[34911:578132] invalidateRenderBuffer
2018-08-28 13:27:12.670795+0700 iCamera[34911:610580] IJKSDLGLView: setupDisplay not ready
ijkmp_shutdown_l()=void
ijkmp_set_inject_opaque(0x0)
ijkmp_set_inject_opaque()=void
ijkmp_set_ijkio_inject_opaque(0x0)
ijkmp_set_ijkio_inject_opaque()=void
ijkmp_dec_ref(): ref=0
ijkmp_shutdown_l()
ijkmp_shutdown_l()=void
aout_close_audio()
2018-08-28 13:27:12.686371+0700 iCamera[34911:578132] FFP_MSG_ERROR: 0
IJKMPMoviePlayBackStateDidChange Optional(__C.IJKMPMoviePlaybackState): paused
playbackStateDidChange: IJKMPMovieFinishReasonPlaybackError: 1

mediaPlayerStateChanged: error!

the above log is started from new hls player play. Plz help. I'm stucking in almost 5 days...

@jiaxianhua plz help