当我返回Android中的视频播放活动时出现黑屏



我正在尝试播放主要活动背景的视频。现在正在按照我想要的方式播放视频...当我按下"继续"按钮转到另一个活动/视图时购买,然后当我返回主屏幕时,屏幕是黑色的......它不会开始播放 de 视频 再次。.如果有人可以帮助我解决这个问题,我将不胜感激。谢谢大家。

这是我正在使用的java代码

  package co.siriusapps.aviation;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.VideoView;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
public class StarterActivity extends AppCompatActivity {

private VideoView videoview;
private Button mContinuar;
private String mBank;
private int mCurrentVideoPosition;
private MediaPlayer mp;

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

    videoview = (VideoView) findViewById(R.id.videoview);
    Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.mainvideo);
    videoview.setVideoURI(uri);
    videoview.start();
    videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            mp.setLooping(true);
            if (mCurrentVideoPosition != 0) {
                mp.seekTo(mCurrentVideoPosition);
                mp.start();
            }
        }
    });


    mContinuar = (Button) findViewById(R.id.mContinuar);
    mContinuar.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View view){
            Spinner mBankS = (Spinner) findViewById(R.id.mBank);

            switch(String.valueOf(mBankS.getSelectedItemId())){
                case "0":
                    mBank="ppa";
                    break;
                case "1":
                    mBank="pca";
                    break;
                case "2":
                    mBank="pch";
                    break;
                case "3":
                    mBank="ptl";
                    break;
                case "4":
                    mBank="asa";
                    break;
                case "5":
                    mBank="dpa";
                    break;
                case "6":
                    mBank="prepav";
                    break;
                case "7":
                    mBank="tla";
                    break;
                case "8":
                    mBank="tlh";
                    break;
                case "9":
                    mBank="teei";
                    break;

            }
            SharedPreferences.Editor editor;
            SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(
                    getString(R.string.preferences), Context.MODE_PRIVATE);
            editor = sharedPref.edit();
            editor.putString("BankSelected", mBank);
            editor.commit();
            Boolean firstOpeningValue = sharedPref.getBoolean("first_opening",false);
            Boolean sessionStartedValue = sharedPref.getBoolean("session_started",false);
            Boolean premiumAccount = sharedPref.getBoolean("premium_account"+mBank,false);
            Intent intent;
            if (premiumAccount){
        intent = new Intent(getApplicationContext(), InitialPremiumActivity.class);
      }
      else{
          intent = new Intent(getApplicationContext(), InitialActivity.class);
      }
            startActivity(intent);
        }
    });
}
@Override
protected void OnPause(){
    super.onPause();
    mCurrentVideoPosition = mp.getCurrentPosition();
    videoview.pause();
}
@Override
protected void OnResume(){
    super.onResume();
    videoview.start();
}
@Override
protected void OnDestroy(){
    super.onDestroy();
    mp.release();
    mp = null;
}
}

就像评论部分提到的 - 你应该使用 onPause(( 和 onResume((。在暂停中,您应该停止媒体播放器,在恢复中,您应该重新启动它,如下所示:

@Override
public void onResume(){
    super.onResume();
    if(videoview != null){
        videoview.start();
    }
}

您需要更改此设置(onCreate 内部(:

VideoView videoview = (VideoView) findViewById(R.id.videoview);

对此:

videoview = (VideoView) findViewById(R.id.videoview);

否则,您将无法在onCreate .


编辑:

private VideoView videoview;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_starter);
    videoview = (VideoView) findViewById(R.id.videoview); 
    //Your code......
}
//It should be underneath onCreate
@Override
public void onResume(){
    super.onResume();
    if(videoview != null){
        videoview.start();
    }
}

相关内容

最新更新