Android Vitamio 4.2更新5.0崩溃

Android Vitamio 4.2更新5.0崩溃,android,vitamio,Android,Vitamio,由于开发者控制台的安全问题,我按照谷歌的要求将Vitamio4.2.2更新为5.0.0。但代码是一样的。仅更改了Vitamio.i初始化(getApplicationContext());没有错误。应用程序已安装。但视频不能播放。我该怎么办 公共类MainActivity扩展活动实现MediaPlayer.OnBufferingUpdateListener、MediaPlayer.OnCompletionListener、MediaPlayer.OnPreparedListener、MediaP

由于开发者控制台的安全问题,我按照谷歌的要求将Vitamio4.2.2更新为5.0.0。但代码是一样的。仅更改了Vitamio.i初始化(getApplicationContext());没有错误。应用程序已安装。但视频不能播放。我该怎么办

公共类MainActivity扩展活动实现MediaPlayer.OnBufferingUpdateListener、MediaPlayer.OnCompletionListener、MediaPlayer.OnPreparedListener、MediaPlayer.OnVideoSizeChangedListener、SurfaceHolder.Callback{

private static String TAG = MainActivity.class.getSimpleName();
private static String ShowTV = "http://mn-i.mncdn.com/showtv_ios/smil:showtv.smil/playlist.m3u8";";
private TextView tvLoader;
private int mVideoWidth;
private int mVideoHeight;
public MediaPlayer mMediaPlayer;
private SurfaceView mPreview;
private SurfaceHolder holder;
private boolean mIsVideoSizeKnown = false;
private boolean mIsVideoReadyToBePlayed = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Vitamio.isInitialized(getApplicationContext());

    if (Build.VERSION.SDK_INT < 16)
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    else
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

    tvLoader = (TextView) findViewById(R.id.tvLoader);
    mPreview = (SurfaceView) findViewById(R.id.surface);
    holder = mPreview.getHolder();
    holder.addCallback(this);
    holder.setFormat(PixelFormat.RGBA_8888);
}


public void playVideo() {
    doCleanUp();
    try {

        // Create a new media player and set the listeners
        mMediaPlayer = new MediaPlayer(this);
        mMediaPlayer.setDataSource(ShowTv);
        mMediaPlayer.setDisplay(holder);
        mMediaPlayer.prepareAsync();
        mMediaPlayer.setOnBufferingUpdateListener(this);
        mMediaPlayer.setOnCompletionListener(this);
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.setOnVideoSizeChangedListener(this);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);

    } catch (Exception e) {
        Log.e(TAG, "error: " + e.getMessage(), e);
    }
}

public void onBufferingUpdate(MediaPlayer arg0, int percent) {
    // Log.d(TAG, "onBufferingUpdate percent:" + percent);

}

public void onCompletion(MediaPlayer arg0) {
    Log.d(TAG, "onCompletion called");

}

public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
    Log.v(TAG, "onVideoSizeChanged called");
    if (width == 0 || height == 0) {
        Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")");
        return;
    }
    mIsVideoSizeKnown = true;
    mVideoWidth = width;
    mVideoHeight = height;
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
        startVideoPlayback();
    }
}

public void onPrepared(MediaPlayer mediaplayer) {
    Log.d(TAG, "onPrepared called");
    mIsVideoReadyToBePlayed = true;
    tvLoader.setVisibility(View.GONE);
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
        startVideoPlayback();
    }
}

public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {
    Log.d(TAG, "surfaceChanged called");

}

public void surfaceDestroyed(SurfaceHolder surfaceholder) {
    Log.d(TAG, "surfaceDestroyed called");
}

public void surfaceCreated(SurfaceHolder holder) {
    Log.d(TAG, "surfaceCreated called");
    playVideo();

}

@Override
protected void onPause() {
    super.onPause();
    releaseMediaPlayer();
    doCleanUp();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    releaseMediaPlayer();
    doCleanUp();
}

public void releaseMediaPlayer() {
    if (mMediaPlayer != null) {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
}

private void doCleanUp() {
    tvLoader = (TextView) findViewById(R.id.tvLoader);
    tvLoader.setVisibility(View.VISIBLE);
    mVideoWidth = 0;
    mVideoHeight = 0;
    mIsVideoReadyToBePlayed = false;
    mIsVideoSizeKnown = false;
}

private void startVideoPlayback() {
    Log.v(TAG, "startVideoPlayback");
    holder.setFixedSize(mVideoWidth, mVideoHeight);
    mMediaPlayer.start();
}
private static String TAG=MainActivity.class.getSimpleName();
专用静态字符串ShowTV=”http://mn-i.mncdn.com/showtv_ios/smil:showtv.smil/playlist.m3u8";";
私有文本视图tvLoader;
私有整数宽度;
私人身高;
公共媒体播放层;
私人SurfaceView mPreview;
私人土地持有人;
私有布尔值mIsVideoSizeKnown=false;
私有布尔值mIsVideoReadyToBePlayed=false;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Vitamio.i初始化(getApplicationContext());
如果(Build.VERSION.SDK_INT<16)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
其他的
getWindow().getDecorView().SetSystemMivibility(视图、系统、用户界面、标志、全屏);
tvLoader=(TextView)findViewById(R.id.tvLoader);
mPreview=(SurfaceView)findViewById(R.id.surface);
holder=mPreview.getHolder();
holder.addCallback(本);
holder.setFormat(PixelFormat.RGBA_8888);
}
公共视频{
doCleanUp();
试一试{
//创建新的媒体播放器并设置侦听器
mMediaPlayer=新媒体播放器(此);
mmediplayer.setDataSource(ShowTv);
mmediplayer.setDisplay(支架);
mMediaPlayer.prepareAsync();
mmediplayer.setOnBufferingUpdateListener(此);
mmediplayer.setOnCompletionListener(此);
mmediplayer.setOnPreparedListener(此);
mmediplayer.setOnVideoSizeChangedListener(此);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
}捕获(例外e){
Log.e(标记“error:+e.getMessage(),e);
}
}
public void onBufferingUpdate(MediaPlayer arg0,整数百分比){
//Log.d(标签“onBufferingUpdate percent:+percent”);
}
完成时的公共作废(MediaPlayer arg0){
Log.d(标记“onCompletion called”);
}
VideoSizeChanged上的公共空白(MediaPlayer mp、整数宽度、整数高度){
Log.v(标记“onVideoSizeChanged”);
如果(宽度=0 | |高度=0){
Log.e(标记“无效视频宽度(“+width+”)或高度(“+height+”)”);
返回;
}
mIsVideoSizeKnown=真;
mVideoWidth=宽度;
mVideoHeight=高度;
如果(播放错误的视频读取和错误的视频大小){
startVideoPlayback();
}
}
已准备好公开作废(MediaPlayer MediaPlayer){
Log.d(标签“onPrepared called”);
mIsVideoReadyToBePlayed=true;
tvLoader.setVisibility(View.GONE);
如果(播放错误的视频读取和错误的视频大小){
startVideoPlayback();
}
}
公共空间表面更改(表面更改表面更改表面更改、内部i、内部j、内部k){
Log.d(标签“surfaceChanged called”);
}
公共空间表面已覆盖(表面层表面层){
Log.d(标签“表面处理”);
}
已创建的公共空白表面(表面持有人){
Log.d(标签“表面处理”);
播放视频();
}
@凌驾
受保护的void onPause(){
super.onPause();
释放MediaPlayer();
doCleanUp();
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
释放MediaPlayer();
doCleanUp();
}
public void releaseMediaPlayer(){
if(mmediplayer!=null){
mmediplayer.release();
mmediplayer=null;
}
}
私有void doCleanUp(){
tvLoader=(TextView)findViewById(R.id.tvLoader);
tvLoader.setVisibility(View.VISIBLE);
mVideoWidth=0;
mVideoHeight=0;
mIsVideoReadyToBePlayed=错误;
mIsVideoSizeKnown=假;
}
私有void startVideoPlayback(){
Log.v(标签“startVideoPlayback”);
支架。设置固定尺寸(MVideWidth、MVideHeight);
mmediplayer.start();
}

}

请向我们展示一些与您的问题相关的代码。如果没有这些代码,您将非常困难。添加的代码是否可以查看请添加崩溃日志/堆栈跟踪