使用下面的方法,我将播放列表中的视频。
videoItem.setVideoPath(filePaths.get(position));
videoItem.setClickable(true);
videoItem.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
player.playVideo(videoItem);
return true;
}
});videoItem变量是VideoView类的实例,player变量及其方法来自自定义的VideoPlayer类。
这是VideoPlayer类。
public class VideoPlayer {
private Context context;
private Uri uri;
private boolean isVideoPlaying = false;
public VideoPlayer(Context context) {
this.context = context;
}
public void getVideoUri(VideoView video) {
try {
Field field = VideoView.class.getDeclaredField("uri");
field.setAccessible(true);
uri = (Uri) field.get(video);
} catch (Exception e) {
Toast.makeText(context, "Exception caught: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
public void playVideo(VideoView video) {
getVideoUri(video);
MediaController mediaController = new MediaController(context);
mediaController.setAnchorView(video);
mediaController.setMediaPlayer(video);
video.setMediaController(mediaController);
video.setVideoURI(uri);
video.start();
isVideoPlaying = true;
}
}当我点击视频观看,它开始播放。这不是问题。但同时,也显示了当异常被捕获时抛出的土司消息。为什么在代码中会出现异常?
发布于 2015-12-08 21:20:42
您的错误说"uri"不是VideoView类的字段,请检查VideoView类并更正要访问的字段的名称。
https://stackoverflow.com/questions/34162896
复制相似问题