我已经非常接近让我的视频播放,但我仍然遇到了一个问题。这是我的密码 MainActivity.java
:
public void my_vid(View view){
setContentView(R.layout.my_vid);
VideoView vid = findViewById(R.id.video_view);
String vid_path = "/sdcard/Download/Track_horizontal_plane.mp4";
Uri uri = Uri.parse(vid_path);
vid.setVideoURI(uri);
MediaController mediaController = new MediaController(this);
vid.setMediaController(mediaController);
mediaController.setAnchorView(vid);
}
以下是我的相关布局:
<VideoView
android:id="@+id/video_view"
android:layout_width="411dp"
android:layout_height="667dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
最后,这里是我得到的错误:
2020-12-16 12:40:15.204 25622-25622/com.android.choice D/MediaPlayerNative: getMetadata
2020-12-16 12:40:26.286 25622-25654/com.android.choice E/MediaPlayerNative: error (100, 2)
2020-12-16 12:40:26.287 25622-25622/com.android.choice E/MediaPlayer: Error (100,2)
2020-12-16 12:40:26.287 25622-25622/com.android.choice D/VideoView: Error: 100,2
2020-12-16 12:40:26.302 25622-25654/com.android.choice E/MediaPlayerNative: error (1, -2147479551)
2020-12-16 12:40:26.401 25622-25622/com.android.choice E/MediaPlayer: Error (1,-2147479551)
2020-12-16 12:40:26.401 25622-25622/com.android.choice D/VideoView: Error: 1,-2147479551
当我打开包含videoview的内容布局时,mediacontroller可以工作,甚至可以正确地告诉我所选视频的长度。我一按mediacontroller上的play,它就告诉我无法播放视频。文件是一个 mp4
文件,所以我认为应该没有问题。知道我哪里出错了吗?谢谢你的帮助。
1条答案
按热度按时间dzjeubhm1#
1.请确保从硬编码字符串解析uri是正确的。如果您尝试使用实际的uri,可能会更好。在这里你可以看到一个从画廊获取视频的例子。
2.如果问题不在uri上,那么最好使用exo播放器(由google构建)而不是视频播放器,这样可以支持广泛的视频和音频容器。