2012年2月18日更新
我收到了我忙碌的教练的回复,说按钮应该是什么,他说它应该是MediaController按钮(播放,上一页和下一页),我相信它应该一直显示在屏幕上,而不是一个自定义按钮。我认为Play按钮没有onclicklistener。是否有Play按钮单击的监听器(除了代码示例中的onCreate活动)。我试图不必使用意图开始另一个活动。谢谢!
我的家庭作业项目是修改现有项目(使用MediaPlayer和MediaRecorder类捕获音频),添加一个按钮(我假设这是我必须创建的,而不是MediaController显示时的播放按钮)来播放视频时使用MediaController单击。我尝试这样做,但我添加的代码无法播放视频。我的课程材料中的示例使用MediaController的“播放”按钮,因此我想学习如何使用自定义按钮来播放视频。然后处理将其集成到现有项目中。请指出我现有的示例代码或指导我这项工作。谢谢!
今天,我继续创建了一个单独的项目,只有一个按钮,可以使用MediaController播放视频。正如预期的那样,它仍然无效(无法启动视频,NullPointerException)。我在下面提供项目文件。我现在很无能为力。请指出一两件事让我开始解决问题。再次感谢!
package com.mypackage;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
import android.content.Context;
import android.os.Environment;
public class MediaActivity extends Activity {
private String path;
J
private VideoView vd;
//private Context context;
private String TAG = " ";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//context = this;
Button playVideoBtn =(Button)findViewById(R.id.playVideo);
playVideoBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
try {
playVideo();
} catch (Exception ex) {
Log.e(TAG, "Failed to Start Playing the video", ex);
}
}
});
}
private void playVideo() throws Exception {
vd = (VideoView) findViewById(R.id.surface_view);
File directoryPath = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);
directoryPath.mkdirs();
path = directoryPath.toString() + "/Familyguy_Has_Own_Orbit.3gp";
if (path == "") {
// Tell the user to provide a media file URL/path.
Toast.makeText(MediaActivity.this, "Please edit MediaActivity, and set path"
+ " variable to your media file URL/path", Toast.LENGTH_LONG).show();
} else {
vd.setVideoPath(path);
vd.setMediaController(new MediaController(this));
vd.requestFocus();
vd.start();
}
}
}
以下是我的布局文件:
main.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">
<Button
android:id="@+id/playVideo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Playing Video"/>
</LinearLayout>
Videoview.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"
>
<VideoView
android:id="@+id/surface_view"
android:layout_width="320px"
android:layout_height="240px"
/>
</LinearLayout>
答案 0 :(得分:0)