我正在尝试在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
}
答案 0 :(得分:1)
它表示发生此错误是由于URL错误或 不兼容的格式,但视频是带有H264编解码器的.mp4。
=>就编解码器和其他功能而言,存在VideoView
的功能并没有那么强大和可扩展。
相反,我建议使用ExoPlayer库。
VideoView
播放视频失败的原因有很多,原因之一是使用其他设备(例如iPhone,Camcorder等)录制时。它们具有不同的视频格式,可能不支持,也可能不支持编解码器。在这种情况下,当我们开发解决方案并涉及android / iPhone / TV或其他媒体时,我们在后端实施了代码以维护单个编解码器,这就是我们与所有设备保持兼容性的方式。