相信不少人做过在游戏登陆前做播放视频的需求,最近我也碰到了这个需求,就先在android上面做测试,正好查到cocos2dx
有videoplayer这个类,想来用用。可是呢,cocos2dx
依然是那种脾气,总不会给你一马平川,于是碰到各种问题,诸如播放视频完成后奔溃啊,看不见视频,又或者是软件切入后台再切入前台就看不见视频了,各种问题,查阅google和百度,总没有令人满意和能解决bug的方法,想着自己来研究下,最终还是把安卓版本的videoplayer给搞定了,下面把我碰到的一些问题和解决过程写出来,给需要的同学借鉴一下。
首先,本人用的是cocos2dx
3.1.1,这个版本videoplayer首先来说个问题就是播放结束后会奔溃,无奈对android开发了解不透彻,据说后来3.10版本没有这个问题,后来对比几个java文件发现了一个地方的问题。
cocos2dx 3.1.1 (Cocos2dxVideoView.java)
private MediaPlayer.OnCompletionListener
mCompletionListener =
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mCurrentState = STATE_PLAYBACK_COMPLETED;
mTargetState = STATE_PLAYBACK_COMPLETED;
mp.release();
if
(mOnVideoEventListener != null) {
mOnVideoEventListener.onVideoEvent(mViewTag,EVENT_COMPLETED);
}
}
};
cocos2dx 3.10(Cocos2dxVideoView.java)
private MediaPlayer.OnCompletionListener
mCompletionListener =
new MediaPlayer.OnCompletionListener()
{
public void onCompletion(MediaPlayer mp)
{
mCurrentState =
STATE_PLAYBACK_COMPLETED;
mTargetState =
STATE_PLAYBACK_COMPLETED;
release(true)