2011-06-29 108 views
3

我编写了从URL播放视频的代码。但我得到UNABLE TO PLAY VIDEO消息。如何在Android中播放视频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> 
+0

嗨,我得到的代码,它非常简单 – user746140

+0

只要写插座PROGRAMM与WIFI打印机IP – user746140

+0

你可以把logcat的痕迹,所以我们可以采取alook一个它 – Necronet

回答

-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(); 

    } 

} 
+0

我也尝试相同的代码为MP4视频格式,但我没有得到任何结果 – user746140

0

你可以简单火灾的意图被另一个应用程序播放视频。
在这里,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

它的简单只是创建视频视图,然后添加一个新的媒体控制器,在视频视图中设置视频网址,并启动它将工作的视频。

将以下代码添加到您的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在线播放。

+0

请不要只是张贴代码。一点点的解释会帮助他人理解 – Nabin

-1

某些文件格式如youtube视频文件格式无法在视频视图中打开。 videoview只支持系统文件格式,可以像mp4一样操作它。 3gp。其他... 为开飞的视频格式,你必须使用surfeview和创建类,可以HANDL此视频类型 和GET视频从链路中使用的InputStream(不使用字符串) 等简单的方式展示YouTube视频只需使用Intent.View,网址(视频URI) https://developer.android.com/guide/appendix/media-formats.html

+0

这很难理解。请编辑以澄清你的意思,尤其是特别支持哪些格式。 –