在Android Eclipse中使用VideoView播放视频

时间:2014-04-19 17:22:37

标签: android eclipse android-videoview

我正在尝试使用VideoView播放视频。当我运行我的应用程序时,我收到强制关闭消息。有人请帮帮我。以下是我的代码。

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

<VideoView
    android:id="@+id/videoView1"
    android:layout_width="match_parent"
    android:layout_height="328dp" />

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/play" />


<Button
    android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/pause" />

<Button
    android:id="@+id/button3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/stop" />

</LinearLayout>


package ram.videoplayer;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.VideoView;


public class VideoplayerActivity extends Activity {
/** Called when the activity is first created. */

VideoView vv;
View v;
int id;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    vv = (VideoView)findViewById(R.id.videoView1);
    Uri u = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v);
    vv.setVideoURI(u);

    id = v.getId();

    switch (id) {

    case R.id.button1:
        vv.start();
        break;

    case R.id.button2:
        vv.pause();
        break;

    case R.id.button3:
        vv.stopPlayback();
        break;

       } 
    }
}

最初这是我的代码。它不起作用。然后我尝试减少我的代码,删除了我正在使用的所有三个按钮。我没有任何按钮点击就直接使用vv.start();。当我这样做的时候,我就成功了。我能够听到我的视频正在运行。但不幸的是,我在屏幕上看不到任何视频。然后我修改了我的代码。我使用了vv.setVideoPath("/sdcard/v.mp4");而不是Uri语句。它导致了“无法播放视频”的消息。我搜索了答案。到目前为止,我找不到令人满意的答案。我正在使用android 2.2,当我在追捕时,我发现一些语句,如“vv.setVideoPath("/sdcard/v.mp4");在android 2.2中不起作用”所以我现在有3个问题。

  1. setVideoPath()真的无法在Android 2.2中运行吗?
  2. 当我使用Uri时为什么看不到我的视频?
  3. 我在代码中添加按钮时出了什么问题?
  4. 请帮帮我。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

在您的xml文件中,为每个按钮添加此行android:onClick="buttonClick"
在您的活动类中,将您的代码更改为:

 VideoView vv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    vv = (VideoView) findViewById(R.id.videoView1);
    Uri u = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.v);
    vv.setVideoURI(u);
}

public void buttonClick(View v){
    switch (v.getId()) {

        case R.id.button1:
            vv.start();
            break;

        case R.id.button2:
            vv.pause();
            break;

        case R.id.button3:
            vv.stopPlayback();
            break;

    }
}