iOSDevLog / ijkplayer

Bilibili/ijkplayer cocoapods,iOS video player based on FFmpeg n3.3, with MediaCodec, VideoToolbox support.
GNU Lesser General Public License v2.1
79 stars 34 forks source link

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

Closed fukemy closed 6 years ago

fukemy commented 6 years ago

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...

fukemy commented 6 years ago

@jiaxianhua plz help