无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?
Posted
技术标签:
【中文标题】无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?【英文标题】:Unable to play video from url in videoview in android How to play video from URL in videoview? 【发布时间】:2020-07-14 10:55:22 【问题描述】:我正在尝试使用VideoView
在android 中实现视频播放器。我在服务器上上传了视频我正在从服务器获取视频并尝试在VIdeoView
中播放我已成功获取视频但无法在播放器中播放。
下面是我的代码:
MediaController mediacontroller = new MediaController(getActivity());
mediacontroller.setAnchorView(videoView);
videoView.setMediaController(mediacontroller);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
@Override
public void onCompletion(MediaPlayer mp)
videoView.setVideoURI(Uri.parse(video_url));
videoView.start();
);
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener()
@Override
public boolean onError(MediaPlayer mp, int what, int extra)
Toast.makeText(getActivity(),"Error",Toast.LENGTH_SHORT).show();
return false;
);
有人请让我知道我做错了什么。任何帮助将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:在将媒体控制器设置为这样的视频视图之前,您还需要设置视频路径 url
Uri uri = Uri.parse(path);
videoView.setVideoURI(uri);
videoView.start();
示例
videoView.setVideoURI(Uri.parse(video_url));
videoView.start();
MediaController mediacontroller = new MediaController(getActivity());
mediacontroller.setAnchorView(videoView);
videoView.setMediaController(mediacontroller);
ProgressBar progressBar =findViewById(R.id.progressbar);
progressBar.setVisibility(View.VISIBLE);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
@Override
public void onCompletion(MediaPlayer mp)
);
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener()
@Override
public boolean onError(MediaPlayer mp, int what, int extra)
Toast.makeText(getActivity(),"Error",Toast.LENGTH_SHORT).show();
return false;
);
videoView.setOnPreparedListener(new OnPreparedListener()
@Override
public void onPrepared(MediaPlayer mp)
// TODO Auto-generated method stub
mp.start();
mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener()
@Override
public void onVideoSizeChanged(MediaPlayer mp, int arg1,
int arg2)
// TODO Auto-generated method stub
progressBar.setVisibility(View.GONE);
mp.start();
);
);
像这样在xml
中添加这个progressbar
小部件
<ProgressBar
android:id="@+id/progressbar"
android:layout_
android:layout_
android:layout_centerInParent="true"
android:visibility="gone" />
更新:- 在播放视频时添加进度条
【讨论】:
更新代码,试试看,然后点击我的答案上的勾号图标确认以上是关于无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Android 中的 VideoView 需要花费太多时间来加载和播放来自 http 链接的视频?
如何在 android 的 videoview 中播放 .mp4 视频?
无法播放视频 VideoView Android 12(错误 (1, -2147483648))