Я реализовал звуковой пул для воспроизведения короткого звука при запуске приложения, но по какой-то странной причине он перестает воспроизводить звук после того, как я открываю свое приложение, например, 24-й или 25-й раз. такие же результаты с медиаплеером. но когда он останавливается после 25-го запуска, и я удаляю его из своих последних приложений, он снова начинает работать, поэтому я решил исключить свое приложение из списка последних приложений, но проблема остается. любые подсказки?
public class MainActivity extends Activity {
Handler mHandler; // global instance
Runnable your_runnable; // global instance
private SoundPool soundPool;
private int soundID;
boolean loaded = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//Keep screen Always ON
//final MediaPlayer mp1 = MediaPlayer.create(getBaseContext(), R.raw.a); // -<play mp3
//mp1.start();
mHandler = new Handler();
//your_runnable = new Runnable() {
//@Override
//public void run() {
//Intent startActivity = new Intent(MainActivity.this,
// Activity_2.class); // -<start this activity after 3sec
// startActivity(startActivity);
//overridePendingTransition(R.anim.fadeout, R.anim.fix);//play animation
// finish();
//}
//};
mHandler.postDelayed(your_runnable, 3000L);//3sec timer
// Set the hardware buttons to control the music
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// Load the sound
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundID = soundPool.load(this, R.raw.a, 1);
}
public void onWindowFocusChanged(boolean paramBoolean){//OnCreate Alternate
if (paramBoolean){
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Getting the user sound settings
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVolume = (float) audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
// Is the sound loaded already?
//if (loaded) {
soundPool.play(soundID, volume, volume, 1, 0, 1f);
Log.e("Test", "Played sound");
}}
//}
,500);} // 5 minutes delay before execute run()
}
//public void back(View view) {
//mHandler.removeCallbacks(your_runnable);//finishes timer activity before launching new activity
//Intent intent = new Intent(this, Mod_1_1AtoZ.class);
//startActivity(intent);
//overridePendingTransition(R.anim.slide_left_to_right_1,
// R.anim.slide_left_to_right_2);
//finish();
//}
//@Override
//public void onBackPressed() {
// TODO Auto-generated method stub
//}
}
mHandler.postDelayed(your_runnable, 3000L);//3sec timer
, которую вы уже использовали в своем коде. - person Nishanthi Grashia   schedule 05.09.2014