Android как настроить Media Player (Videoview) по нажатию кнопки? - PullRequest
1 голос
/ 31 мая 2011

Я пишу приложение, которое воспроизводит 3gp-видео с URL, все работает нормально, но я могу просто открыть видео из действия, что означало бы, что мне нужно установить действие для каждого фильма, который я покажу в своем приложении, и это будетслишком много.

Я открою мое видео одним нажатием кнопки, чтобы я мог написать 20 ссылок за одно действие!

Вот мой код, который работает как одно действие:

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class videoact extends Activity implements OnPreparedListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.videoview);

        MediaController mc = new MediaController(this);
        VideoView vv = (VideoView)findViewById(R.id.view1);
        try
        {
         Uri ur = Uri.parse("rtsp://v4.cache4.c.youtube.com/CjgLENy73wIaLwkHCCLABs2fehMYJCAkFEIJbXYtZ29vZ2xlSARSB3JlbGF0ZWRg7e7u0PeUj8hMDA==/0/0/0/video.3gp");
         vv.setVideoURI(ur);
         vv.setMediaController(mc);
         vv.requestFocus();
         vv.start();
         mc.show();
        }
        catch(Exception e)
        {
         System.out.print(e.getMessage() + "error");
        }

    }

public void onPrepared(MediaPlayer mp) {
    // TODO Auto-generated method stub
    mp.start();
}

}

и если я пытаюсь сделать кнопку перед ней:

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;

public class videoact extends Activity implements OnPreparedListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button next1 = (Button) findViewById(R.id.button1);
        next1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {


//here Eclipse say"The constructor MediaController(new View.OnClickListener(){}) is undefined"
//and gives an error


        MediaController mc = new MediaController(this);
        VideoView vv = (VideoView)findViewById(R.id.view1);
        try
        {
         Uri ur = Uri.parse("rtsp://v4.cache4.c.youtube.com/CjgLENy73wIaLwkHCCLABs2fehMYJCAkFEIJbXYtZ29vZ2xlSARSB3JlbGF0ZWRg7e7u0PeUj8hMDA==/0/0/0/video.3gp");
         vv.setVideoURI(ur);
         vv.setMediaController(mc);
         vv.requestFocus();
         vv.start();
         mc.show();
        }
        catch(Exception e)
        {
         System.out.print(e.getMessage() + "error");
        }

    }

public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}

}

Во второй версии я изменяю вид установленного содержимого на «основной», есть кнопка, с которой должна начинаться кнопка1для воспроизведения видео!

Обновление:

Может быть, я не могу объяснить себя!Что мне нужно сделать, так это то, что у меня есть действие (MainActivity), в котором я загружаю макет.В этом макете у меня есть обложки разных фильмов, обложки кнопок.Если я нажимаю на обложку, медиаплеер должен начать воспроизводить код, который я написал ранее, моя проблема в том, что код, который я пишу, находится в другом упражнении, давайте назовем его (Movie1), если я делаю это таким образом, я должен создать для каждого фильма одинЯ думаю, это будет больше, чем 40 мероприятий, если вы скажете, что 40 мероприятий - это не так много, как у меня нет проблем, или просто скажите мне, как сказать, что моя деятельность (MainAcitivity), например, при нажатии кнопки.открывайте видео из файла URL без активности Movie1!

Я думаю, что мне нужно создать пустое действие MediaPlayer, в котором я могу сказать, загружать нажатием кнопки x этот URL с моим действием MediaPlayer, но я не знаю, как.

...