2012-02-14 3 views
1

Обновление на 2/18/2012Как добавить кнопку для воспроизведения видео с помощью MediaController?

Я получил ответ от моего напряженного инструктора о том, что кнопка должна быть, и он сказал, что это должно быть кнопки 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

http://stackoverflow.com/questions/8681550/android-2-2-mediaplayer-is-working-fine-with-one-shoutcast-url-but-not-with-the –

ответ

0

Вы могли бы хотеть смотреть на них:

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

Android: How to create video player?

+0

Благодарю. Я взглянул на них. Однако, поскольку эти проекты не используют класс MediaController, я не думаю, что я могу легко изучить их для применения к моему текущему проекту. Но они, безусловно, являются хорошим учебным материалом. – macrogeo