我正在尝试使用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个问题。
setVideoPath()
真的无法在Android 2.2中运行吗?请帮帮我。
提前致谢。
答案 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;
}
}