如何在Android中从URL播放视频?

如何在Android中从URL播放视频?,android,Android,我编写了从URL播放视频的代码。但我收到无法播放视频的消息 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); VideoView videoView = (VideoView) findViewById(R.id.video); MediaController mc = new Me

我编写了从URL播放视频的代码。但我收到
无法播放视频的消息

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    VideoView videoView = (VideoView) findViewById(R.id.video);
    MediaController mc = new MediaController(this);
    mc.setAnchorView(videoView);
    mc.setMediaPlayer(videoView);
    Uri video = Uri.parse("http://www.youtube.com/watch?v=qvtCk1wZ7LM&feature=player_detailpage");
    videoView.setMediaController(mc);
    videoView.setVideoURI(video);
    videoView.start();

}

以下是播放视频的简单方法

xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingLeft="2px" android:paddingRight="2px"
android:paddingTop="2px" android:paddingBottom="2px"
android:layout_width="fill_parent" android:orientation="vertical">

    <VideoView android:layout_height="fill_parent"
    android:layout_width="fill_parent" android:id="@+id/VideoView"></VideoView>

</LinearLayout>

您可以通过另一个应用程序简单地激发播放视频的意图。
在这里,Youtube应用程序将检测到Youtube视频,并将提示对话框代表您播放视频

    String url = "http://www.youtube.com/watch?v=qvtCk1wZ7LM";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);

但是,如果你真的想在应用程序中集成视频播放器,我强烈建议你看看。

这很简单,只需创建视频视图,然后添加一个新的媒体控制器,在视频视图中设置视频URL,然后启动视频即可

将以下代码添加到MainActivity.java文件中

    @Override

     protected void onCreate(Bundle savedInstanceState)

          // TODO Auto-generated method stub
         super.onCreate(savedInstanceState);
         try {
         setContentView(R.layout.videodisplay);
         String link="http://s1133.photobucket.com/albums/m590/Anniebabycupcakez/?action=view&amp; current=1376992942447_242.mp4";
         VideoView videoView = (VideoView) findViewById(R.id.VideoView);
         MediaController mediaController = new MediaController(this);
         mediaController.setAnchorView(videoView);
         Uri video = Uri.parse(link);
         videoView.setMediaController(mediaController);
         videoView.setVideoURI(video);
         videoView.start();
     } catch (Exception e) {
         // TODO: handle exception
         Toast.makeText(this, "Error connecting", Toast.LENGTH_SHORT).show();
     }
 }

您最好在脱机文件上试用,以确保视频查看器工作正常(视频与设备兼容),然后从YouTube联机播放。

某些文件格式(如YouTube视频文件格式)无法在视频视图中打开。 videoview仅支持系统文件格式,可以像mp4一样打开它。3gp。其他。。。 对于open fly视频格式,您必须使用SurveView并创建可以处理此视频类型的类 要从链接获取视频,请使用输入流(不要使用字符串) 显示youtube视频的另一个简单方法是使用Intent.View、url(您的视频uri)

使用Exo Player,播放视频和功能都是更好的选择--遵循

嗨,我得到了代码,它非常简单,只需使用WIFI打印机编写socket程序,你就可以放置LogCat跟踪,这样我们就可以查看了。我也尝试了mp4视频格式的相同代码,但我没有得到任何结果。请不要只是发布代码。一点解释就能帮助别人理解这很难理解。请编辑以澄清您的意思,特别是支持哪些格式。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户将了解它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。OP已经为如何在Android中从URL播放视频提供了代码(显然没有功能)。如果使用Exo-Player更容易做到这一点,那么一个显示如何使用Exo-Player执行OP试图执行的操作的代码片段将是一个有用的答案。
    String url = "http://www.youtube.com/watch?v=qvtCk1wZ7LM";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
    @Override

     protected void onCreate(Bundle savedInstanceState)

          // TODO Auto-generated method stub
         super.onCreate(savedInstanceState);
         try {
         setContentView(R.layout.videodisplay);
         String link="http://s1133.photobucket.com/albums/m590/Anniebabycupcakez/?action=view&amp; current=1376992942447_242.mp4";
         VideoView videoView = (VideoView) findViewById(R.id.VideoView);
         MediaController mediaController = new MediaController(this);
         mediaController.setAnchorView(videoView);
         Uri video = Uri.parse(link);
         videoView.setMediaController(mediaController);
         videoView.setVideoURI(video);
         videoView.start();
     } catch (Exception e) {
         // TODO: handle exception
         Toast.makeText(this, "Error connecting", Toast.LENGTH_SHORT).show();
     }
 }