在安卓设备上如何通过URL播放视频?

3

我编写了播放来自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();

}

<VideoView
android:layout_width="match_parent" 
           android:layout_height="wrap_content" 
           android:id="@+id/video"></VideoView>

嗨,我已经拿到代码了,它非常简单。 - SURYA KARUTURI
只需编写使用 WIFI 打印机 IP 的套接字程序。 - SURYA KARUTURI
你能把LogCat追踪信息放上来,这样我们可以看一下吗? - Necronet
5个回答

0
你可以通过向另一个应用程序发送Intent来简单地播放视频。
在这里,Youtube应用程序将检测到一个Youtube视频,并提示对话框以代表您播放视频。
    String url = "http://www.youtube.com/watch?v=qvtCk1wZ7LM";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);

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


0

很简单,只需创建视频视图,然后向其中添加新的媒体控制器,在视频视图中设置视频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在线播放。

请不要只发布代码。稍微解释一下会帮助其他人理解。 - Nabin

-1

这是一个简单易用的播放视频的方式。

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>

Java 文件.....

public class VideoPlayerController extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.video);

        VideoView videoView = (VideoView) findViewById(R.id.VideoView);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        // Set video link (mp4 format )
        Uri video = Uri.parse("mp4 video link");
        videoView.setMediaController(mediaController);
        videoView.setVideoURI(video);
        videoView.start();

    }

}

我也尝试同样的代码来处理 MP4 视频格式,但是我没有得到任何结果。 - SURYA KARUTURI

-1

一些文件格式,如YouTube视频文件格式,无法在视频视图中打开。 VideoView仅支持系统文件格式,例如mp4、3gp等。 要打开Fly视频格式,您必须使用Surfeview并创建可以处理此视频类型的类, 并且为了从链接获取视频,请使用InputStream(不要使用字符串)。 另一种简单的方法是使用Intent.View,url(您的视频URI) https://developer.android.com/guide/appendix/media-formats.html


这很难理解。请编辑以澄清您的意思,特别是关于支持哪些格式的问题。 - Nathan Tuggy

-1

使用Exo-Player,它是播放视频和具有许多功能的更好选择--请参阅Exo Player文档


欢迎提供解决方案的链接,但请确保您的回答即使没有链接也是有用的:添加链接周围的上下文,以便您的同行用户知道它是什么以及为什么存在,然后在目标页面不可用时引用您链接的页面中最相关的部分。 [那些几乎只是一个链接的答案可能会被删除。] (//stackoverflow.com/help/deleted-answers) - double-beep
OP提供了一段(显然无法正常工作的)代码,用于在Android中播放来自URL的视频。如果使用Exo Player更容易,那么展示如何使用Exo Player完成OP尝试做的事情的代码片段将是一个有用的答案。 - Nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接