gpt4 book ai didi

android - 如何在 Android 中使用横向和纵向连续处理音频?

转载 作者:行者123 更新时间:2023-11-29 17:58:05 25 4
gpt4 key购买 nike

我使用媒体播放器在一项 Activity 中创建了音频。我在启动、暂停、恢复时也能正常运行,但是当我以横向或纵向模式旋转屏幕时,我的歌曲会播放两次。

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.audio);
init();

prefs = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor prefsEdit = prefs.edit();

mp = MediaPlayer.create(Audio_Activity.this, R.raw.subhanallah);
Log.e("Song is playing", "in Mediya Player ");

mp.setLooping(false);
mp.start();

System.out.println("Media Plyer Is Start !!!");
prefsEdit.putBoolean("mediaplaying", true);
prefsEdit.commit();
btnChapter.setEnabled(false);

System.out.println("B4 button Click!!!!");


}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

@Override
public void onPause() {
super.onPause();

SharedPreferences.Editor prefsEdit = prefs.edit();
boolean isPlaying = prefs.getBoolean("mediaplaying", false);
if (isPlaying)
{
mp.pause();
int position = mp.getCurrentPosition();
Log.e("Current ", "Position -> " + position);
prefsEdit.putInt("mediaPosition", position);
prefsEdit.commit();
}
}

@Override
protected void onResume() {

super.onResume();

mp.start();

boolean isPlaying = prefs.getBoolean("mediaplaying", false);
if (isPlaying) {
int position = prefs.getInt("mediaPosition", 0);
mp.seekTo(position);
// mp.start();

}
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
if (mp != null) {
if (mp.isPlaying()) {

mp.stop();
}
}
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}


}

最佳答案

不要依赖 onPause() 中的 SharedPreferences 值。仅使用它在 onCreate() 中启动播放器。

关于android - 如何在 Android 中使用横向和纵向连续处理音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com