Я пишу приложение, которое воспроизводит 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, но я не знаю, как.