我是Android Dev的新用户,但我正在尝试在应用首次启动时运行视频。我将.mp4文件放在'res'目录下的'raw'文件夹中。到目前为止我有这个......
public class MainActivity extends Activity {
MediaPlayer videotime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videotime = MediaPlayer.create(this, R.raw.lessonslearned);
videotime.start();
}
protected void onResume() {
Log.e("Pickle", "onResume");
videotime = MediaPlayer.create(this, R.raw.lessonslearned);
videotime.start();
super.onResume();
}
任何帮助将不胜感激。视频应该在应用程序启动时开始,一直播放,然后停止。
谢谢!
编辑:我收到MEDIAPLAYER错误(1,-2147483648) 基本上视频不播放,音频不在后台。
答案 0 :(得分:0)
您不应该在videotime.start()
中致电onCreate
。这将在活动处于最前端之前启动MediaPlayer
。你打电话给videotime.start()
两次。只能在onResume()
方法中调用它。
在启动之前,您还需要在prepare
上致电MediaPlayer
。
有关如何正确启动MediaPlayer
:
Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
对于视频,这应该是相同的,但具有不同的选项。
答案 1 :(得分:0)
绝对一个更好的方法是使用VideoView。我不完全确定,但是如果您想要使用MediaPlayer
播放视频,则需要SurfaceView
来观看视频,我使用的是Phoenixblade9解决方案,但仅使用.mp3文件。
您可以使用VideoView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView v = (VideoView) findViewById(R.id.myVideoView);
v.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video));
v.start();
}
只需将VideoView
添加到您的布局中即可。
<VideoView
android:id="@+id/myVideoView"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
更新:要在MediaPlayer
SurfaceView
内播放视频。