如何在Android应用程序中实现视频广告播放[页5]
来源:
时间: 2023-08-23
阅读:
javapublic class VideoAdPlayerActivity extends Activity implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener {
private MediaPlayer mMediaPlayer;
private SurfaceView mSurfaceView;
private SurfaceHolder mSurfaceHolder;
private Timer mTimer;
private int mDuration = 0;
private int mCountdownTime = 5; // 倒计时时间为 5 秒
private boolean mIsAdSkipped = false; // 广告是否被跳过
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_ad_player);
mSurfaceView = findViewById(R.id.surface_view);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource("file:///android_asset/ad_video.mp4");
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(this);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
}
@Override
public void onPrepared(MediaPlayer mp) {
mDuration = mMediaPlayer.getDuration();
mMediaPlayer.start();
startCountdownTimer();
}
@Override
public void onCompletion(MediaPlayer mp) {
if (!mIsAdSkipped) {