我正在尝试播放主要活动背景的视频。现在正在按照我想要的方式播放视频...当我按下"继续"按钮转到另一个活动/视图时购买,然后当我返回主屏幕时,屏幕是黑色的......它不会开始播放 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();
}
}