我正在尝试流式传输视频并使用 VideoView 播放它。我使用 setVideoURI() 向 View 提供视频的源 URL,如下所示。使用像 urlString = "www.myvideoserver.com/videos/bigbuckbunny.mp4"这样的硬编码值,视频可以正常播放。但是,当 urlString 被赋予 Intent 中的值(来自用户选择视频的上一个 Activity )时,我收到消息:“抱歉,视频无法播放”。我读过,常见原因之一是视频格式,如描述的那样 here和 here 。我几乎可以肯定这不是格式问题,因为当 URL 固定时我可以播放视频(我知道这一点是因为我可以从 Log.d("PVurl", urlString); 中看到 urlString 的值是与我修复的完全相同。也就是说,在 LogCat 中,我将值复制粘贴到行 urlString = getIntent()...//"www.myvideoserver.com/videos/bigbuckbunny.mp4 "
,它可以工作,但当 urlString 设置为 Intent 返回值时则不起作用。LogCat Errror 面板给出以下内容:
04-13 17:35:32.786: ERROR/MediaPlayer(2620): error (1, -1007)
04-13 17:35:32.786: ERROR/MediaPlayer(2620): Error (1,-1007)
我在互联网上搜索过,但似乎没有人遇到过这样的错误代码。
如果有人知道可能出现什么问题,我将非常感激。谢谢!
public void playvideo () { // obtain URL of the requested video from the intent in previous activity
try
{
urlString = getIntent().getStringExtra("mypackage.fulladdr");
if (urlStr != null)
{
Log.d("PVurl", urlString);
VideoView v = (VideoView) findViewById(R.id.videoView1);
// play video
v.setVideoURI(Uri.parse(urlString));
v.setMediaController(new MediaController(this));
v.start();
v.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
showRatingDialog();
}
});
}
}
catch (Exception e)
{
Log.d("PV_TAG", +e.getMessage());
e.printStackTrace();
}
}
最佳答案
您还没有添加 Uri 需要找出它所指的内容的方案(在您的情况下为 http)。
urlString = "www.myvideoserver.com/videos/bigbuckbunny.mp4"
将其更改为 urlString = "http://www.myvideoserver.com/videos/bigbuckbunny.mp4"
>
关于Android:无法从非硬编码的 URL 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150645/