1

2012 年 2 月 18 日更新

我从忙碌的教练那里收到了关于按钮应该是什么的回复,他说应该是 MediaController 按钮(播放、上一个和下一个),我相信它应该始终显示在屏幕上,而不是自定义按钮。我认为播放按钮没有 onclicklistener。是否有播放按钮单击的侦听器(我的代码示例中的 onCreate 活动除外)。我试图不必使用意图来开始另一个活动。谢谢!


我的家庭作业项目是通过添加一个按钮(我假设这是我必须创建的东西,而不是显示 MediaController 时的播放按钮)来修改现有项目(使用 MediaPlayer 和 MediaRecorder 类捕获音频)以在使用 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();
    }    
}


} 

这是我的布局文件:

主.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> 

视频视图.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>
4

1 回答 1

0

你可能想看看这些:

https://github.com/commonsguy/vidtry/tree

Android:如何创建视频播放器?

于 2012-02-14T08:19:36.860 回答