1.xml布局
<SurfaceView
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/surface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foregroundGravity="center"
tools:ignore="MissingConstraints" />
2.代码部分
实现MediaPlayer.OnPreparedListener和MediaPlayer.OnCompletionListener,他们分别在MediaPlayer准备好和播放完毕时调用。
public class MainActivity extends AppCompatActivity implements View.OnClickListener,
MediaPlayer.OnPreparedListener,MediaPlayer.OnCompletionListener {
mediaPlayer = MediaPlayer.create(this,R.raw.douyin);//创建
//设置准备监听
mediaPlayer.setOnPreparedListener(this);
//设置结束监听
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setSurface(surface.getHolder().getSurface());//设置画布
//倍速播放
setPlayerSpeed(2.0f);
// surface 创建时机的回调
surface.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(@NonNull SurfaceHolder holder) {
Log.e(TAG,"surfaceCreated");
}
@Override
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
Log.e(TAG,"surfaceChanged");
}
@Override
public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
Log.e(TAG,"surfaceDestroyed");
}
});
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.release();
}