无法在VideoView中播放视频-为什么?

时间:2019-09-10 06:08:08

标签: android android-videoview

我正在尝试在android的VideoView中播放视频,但它始终会显示(1 -2147483648)错误。

起初,我尝试从URL播放,但没有成功,因此我下载了视频,将其保存在原始文件夹中并尝试播放,但仍无法正常工作。 当我搜索错误(1 -2147483648)时,它表示此错误是由于URL错误或格式不兼容等问题而出现的,但视频是带有H264编解码器的.mp4。 为了播放视频,我还应该考虑什么?

//活动

video_view.setMediaController(MediaController(context))

    val videoPath="android.resource://" + context!!.packageName+ "/" + R.raw.howappvideo
    video_view.setVideoURI(Uri.parse(videoPath))
    video_view.requestFocus()
    video_view.setOnPreparedListener {
        Log.i("SeeAllFragment","video is prepared")
        try{
            video_view.start()
        }catch (e:Exception){
            Log.i("SeeAllFragment","error while playing ${e.printStackTrace()}")
        }
    }
    video_view.setOnCompletionListener { mp ->
        toast("video completed")
        mp!!.release()
    }
    video_view.setOnErrorListener { mp, what, extra ->
        Log.i("SeeAllFragment","error while loading video $what $extra ")
        true
    }

1 个答案:

答案 0 :(得分:1)

  

它表示发生此错误是由于URL错误或   不兼容的格式,但视频是带有H264编解码器的.mp4。

=>就编解码器和其他功能而言,存在VideoView的功能并没有那么强大和可扩展。

相反,我建议使用ExoPlayer库。

VideoView播放视频失败的原因有很多,原因之一是使用其他设备(例如iPhone,Camcorder等)录制时。它们具有不同的视频格式,可能不支持,也可能不支持编解码器。在这种情况下,当我们开发解决方案并涉及android / iPhone / TV或其他媒体时,我们在后端实施了代码以维护单个编解码器,这就是我们与所有设备保持兼容性的方式。