Как добавить кнопку для воспроизведения видео с помощью MediaController? - PullRequest
1 голос
/ 14 февраля 2012

Обновление от 18.02.2012

Я получил ответ от своего занятого инструктора о том, какой должна быть кнопка, и он сказал, что это должны быть кнопки MediaController (Play, Previous и Next), и я считаю,он должен отображаться всегда на экране, а не пользовательская кнопка.Я не думаю, что есть кнопка прослушивания кнопки 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>

1 Ответ

0 голосов
/ 14 февраля 2012

Возможно, вы захотите взглянуть на это:

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

Android: Как создать видеоплеер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...