创建一个Android工程,MediaPlayer和SurfaceView播放视频
时间: 2023-11-19 08:04:18 浏览: 124
利用MediaPlayer和SurfaceView播放视频
4星 · 用户满意度95%
好的,下面是创建Android工程并使用MediaPlayer和SurfaceView播放视频的步骤:
1. 在Android Studio中创建一个新的Android工程。
2. 在res目录下创建一个名为"raw"的文件夹,并将要播放的视频文件放入其中。
3. 在布局文件中添加一个SurfaceView组件,用于显示视频画面:
```xml
<SurfaceView
android:id="@+id/surface_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
4. 在Activity中获取SurfaceView组件,并设置MediaPlayer的显示区域为SurfaceView:
```java
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
private SurfaceView mSurfaceView;
private MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSurfaceView = findViewById(R.id.surface_view);
mSurfaceView.getHolder().addCallback(this);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(true);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mMediaPlayer.setDataSource(getResources().openRawResourceFd(R.raw.video));
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
```
5. 在MediaPlayer的准备完成监听器中开始播放视频:
```java
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer.start();
}
});
```
6. 在Activity生命周期的onPause和onResume方法中分别暂停和恢复视频播放:
```java
@Override
protected void onPause() {
super.onPause();
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.pause();
}
}
@Override
protected void onResume() {
super.onResume();
if (!mMediaPlayer.isPlaying()) {
mMediaPlayer.start();
}
}
```
以上就是使用MediaPlayer和SurfaceView播放视频的基本步骤。
阅读全文