我必须使用url从android中的php服务器播放视频。所以我使用了下面的代码。但它不起作用。我不知道我做过的错误。
VideoView video = (VideoView)findViewById(R.id.videoView1);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(video);
String Video="http://xxx/android/deepcut.mp4";
video.setMediaController(mediaController);
video.setVideoURI(Uri.parse(Video));
video.start();
任何人都可以帮助我吗?
答案 0 :(得分:0)
试试这个:
<强> MainActivity.java 强>:
String urlStr = "http://videos.com/link/to/video.mp4";
Uri uri = Uri.parse(urlStr);
VideoView vv = (VideoView) findViewById(R.id.videoView1);
vv.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {return false;}
});
try {vv.setVideoURI(uri);} catch (Exception e) {}
try {vv.start();} catch (Exception e) {}
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
mp.setOnCompletionListener(null);
}
});
在 AndroidManifest.xml :
中添加这些权限<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
答案 1 :(得分:0)
-38是指来自errno.h的ENOSYS错误代码(请参阅此解释https://stackoverflow.com/a/15206308/768935)
在准备工作完成之前,您似乎尝试开始游戏。使用setOnPreparedListener()
方法设置准备侦听器,并在准备完成后调用start()方法。
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.prepareAsync();
从代码中删除当前的video.start()
调用。
从here
开始积分转到him
答案 2 :(得分:0)
您的代码基本上是正确的。从互联网播放视频所需的仅权限是互联网许可。您可以通过添加:
来完成此操作<uses-permission android:name="android.permission.INTERNET"/>
你的清单中的(在该部分内)
您可能还在尝试播放设备不支持的视频,例如:播放主/扩展/高调,或5级AVC视频,甚至是HEVC。您可以在您的文件上运行avprobe / ffprobe以获取它的配置文件和编解码器信息。