【问题标题】:Android: VideoView can't play videoAndroid:VideoView无法播放视频
【发布时间】:2014-03-19 15:05:18
【问题描述】:

我试图让一个基本的视频播放器适用于我正在开发的 android 应用程序,但每当我尝试播放视频时,我都会收到一条错误消息,提示“无法播放视频”。我确定视频是受支持的格式,并且我尝试在几种受支持的格式之间进行转换,所以我认为这是我的代码的问题:

public class VideoActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_layout);

        VideoView videoView = (VideoView)findViewById(R.id.VideoView1);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);

        videoView.setVideoPath("TravelAppTopic4/res/raw/canadavid.mp4");

        videoView.start();  
    }

提前感谢您的帮助

edit:im 在虚拟设备和 S3 上测试相同的结果。

【问题讨论】:

  • 路径似乎错误。
  • 对不起,但是以什么方式?
  • 您尝试过使用 .3gp 视频吗?看看您的视频是否不是 0Byte 大,这些是此错误消息的典型原因。

标签: android android-videoview


【解决方案1】:
public class VideoScreen extends Activity{
private MediaController controller;
Context _ctx = VideoScreen.this;

private Thread thread;
ProgressBar progressBar = null;

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



    progressBar = (ProgressBar) findViewById(R.id.progressbar);


    VideoView video = (VideoView) findViewById(R.id.videoView1);
    controller = new MediaController(VideoScreen.this);
    video.setMediaController(controller);

    video.setVideoPath(_url);
    video.requestFocus();
    video.start();
    progressBar.setVisibility(View.VISIBLE);
    video.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mp.start();
            progressBar.setVisibility(View.GONE);
            mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
                @Override
                public void onVideoSizeChanged(MediaPlayer mp, int arg1,
                        int arg2) {
                    progressBar.setVisibility(View.GONE);
                    mp.start();
                }
            });

        }
    });

 }
}

【讨论】:

    【解决方案2】:

    试试

    videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw. canadavid));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2014-01-19
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多