如何在VideoView中播放视频?

时间:2011-10-10 09:06:39

标签: android playback android-videoview

我想在VideoView中播放视频。 当我尝试这样做时,我收到以下错误:

这是我的源代码:

package com.video.listitem;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class PlayVideo extends Activity {

     VideoView mVideoView;
     MediaController mc;
     String videourl;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.videoplay);

        try {
             mVideoView = (VideoView) findViewById(R.id.videoview);
             String videourl = "rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQl25yDUbxNXTRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp";
             mc = new MediaController(this);
             mVideoView.setMediaController(mc);
             mVideoView.requestFocus();
             mVideoView.setVideoURI(Uri.parse(videourl));
             mc.show();
             mVideoView.start();
         } catch (Exception e) {
         //TODO: handle exception
         }  
    }
}

这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="none"
    android:gravity="center">

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

</LinearLayout>

7 个答案:

答案 0 :(得分:3)

尝试在设备中运行应用,视频可能无法在模拟器中运行...

答案 1 :(得分:1)

尝试添加连接到互联网的权限!

uses-permission android:name="android.permission.INTERNET"

答案 2 :(得分:1)

在提供的示例代码中查看我的回复here。如果视频未播放,请尝试使用Handbrake等程序对其进行重新编码,然后重试。有关支持的视频格式的信息:Android Supported Media Formats

答案 3 :(得分:0)

此问题的答案可能在this post中:

  

返回false或根本没有OnErrorListener会导致   OnCompletionListener要被调用。

     

因此从函数中返回true而不是false且没有错误   将会显示,即

video.setOnErrorListener(new OnErrorListener() {

    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.d("video", "setOnErrorListener ");
        return true;
    }
});

答案 4 :(得分:0)

    public void playVideo() {
            videoView = findViewById(R.id.vid);
 videoView.setVideoPath("rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQl25yDUbxNXTRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")
            videoView.start();
        }

只需在onCreate()方法中调用此函数

答案 5 :(得分:-3)

可能是网址不正确。尝试使用vlc播放器播放该流。如果它被播放,那么我们可以调查其他可能的原因

答案 6 :(得分:-3)

好的,你要做的第一件事是清理你的布局,这是你的第一个问题:  

首先解开它并使问题可见:

 

你应该已经发现了在中心之后错过了你的关闭帽的错误“,只需添加一个”&gt;“......就是这样。清理项目,你应该看到rtsp视频。你的互联网许可如前所述