我无法在活动中设置视频

时间:2011-05-14 10:28:11

标签: android video

你好,我希望不要打扰,但我是开发程序的新手。

我正在尝试在活动中播放视频,但我总是黑屏。

我的视频是使用ffmpeg创建的mp4 h264,使用android配置文件并在quicktime中播放并设置为res / raw / corsolex_1.mp4

我附上我正在写的代码,以了解我想要做的事情,如果有人可以提供帮助,我会非常感激。

安吉洛

此活动称为Clipvideo1

package com.wocmultimedia.VideoEditLesson1;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;

public class Clipvideo1 extends Activity {@Override
     protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.clip1);

// Put the media file into the res/raw folder of your application
MediaPlayer mp = MediaPlayer.create(this, R.raw.corsolex_1);
mp.start();
}}

这是名为clip1.xml

的XML布局
<FrameLayout android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">
        <VideoView android:id="@+id/videoView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"></VideoView>

    </FrameLayout>

2 个答案:

答案 0 :(得分:2)

您不会以某种方式将视频链接到VideoView。

所以当你看到uri有3个部分时:

  1. “android.resource://”
  2. “com.wocmultimedia.VideoEditLesson1”
  3. 您的资源
  4. “corsolex_1”是您视频的名称

    也许这段代码有帮助:

    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.clip1);
    
        VideoView videoView = (VideoView) findViewById(R.id.videoView1);
    
        Uri videoPath = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.corsolex_1);
    
        videoView.setVideoURI(videoPath);
        videoView.requestFocus();
        videoView.start();
    
        }
    

答案 1 :(得分:0)

VideoView是SurfaceView的子类,它包含和管理MediaPlayer对象。在XML文件中,您声明 VideoView ,并在Java代码中创建和管理 MediaPlayer 对象。它们是分开的,代码中它们之间没有关系。所以你有两个选择:

  1. 使用VideoView,如 evilone 的回答中所述,让它管理 MediaPlayer 对象。 这是恕我直言的最佳方式,有人已经开发了MediaPlayer对象的处理方式,并且很适合你。
  2. 使用MediaPlayer,但要正确管理,包括处理和附着表面和表面支架。查看android开发者网站中的MediaPlayerDemo_Video,看看应该如何完成。