2015-11-14 7 views
1

У меня есть код, в котором есть звук, на кнопке нажмите и аудио через десять секунд (в фоновом режиме). У меня есть следующий код, чтобы остановить кнопку аудио, когда десять второго интервала играет, и она отлично работает:Звуки отменяют друг друга?

public static void myPop(Context context){ 
    AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
    if(!manager.isMusicActive()) {  //Only if there isn't any other audio playing 
     MediaPlayer pop = MediaPlayer.create(context, R.raw.pop); 
     pop.start(); 
    } 
    else{ 
     Log.v(TAG, "Audio is already playing"); 
    } 
} 

Это прекрасно работает, и он останавливает один звук из игры (поп), чтобы позволить другим аудио воспроизведения (Один из фоновой службы). Теперь у меня проблема, когда они оба играют одновременно. Например, когда я нажимаю кнопку на точный, как при запуске аудиофайла из фоновой службы. Когда это произойдет, мое приложение автоматически отключится! Есть ли способ отдать предпочтение звуку фонового сервиса? Как-то говорят, что: Если две звуковые части начинаются в одно и то же время, я хочу, чтобы звук фонового сервиса воспроизводился. Я искал этот день целый день, но, похоже, это не общая проблема ...? Я очень ценю вашу помощь в решении этой проблемы!

Спасибо,

Rich

ответ

0

Я думаю, что при нажатии на кнопку media не обновлял свой статус. Так что это вызовет поп. Чтобы этого не произошло, подождите некоторое время, прежде чем проверять статус.

public static void myPop(Context context){ 

try{ 
    Thread.sleep(500);//500ms = 0.5s 
}catch(InterruptedException ex){ 
} 
    AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 

    //Wait for sometime and then check status 

    if(!manager.isMusicActive() && hasDelayed1s) {  //Only if there isn't any other audio playing 
     MediaPlayer pop = MediaPlayer.create(context, R.raw.pop); 
     pop.start(); 

    } 
    else{ 
     Log.v(TAG, "Audio is already playing"); 
    } 
} 
+0

Не будет ли это останавливать звук от игры над собой? Это не проблема, хотя я хочу, чтобы два отдельных аудио не отменяли друг друга. Пожалуйста, объясни. Спасибо большое за Ваш ответ! –

+0

Но это не проблема. myPop идет хорошо. Проблема в том, что если pop начинается с ** того же ** времени, что и мой ** другой ** MediaPlayer (который работает в фоновом режиме), тогда ** оба ** звуки заглушают. Каждый отдельный звук в порядке, это просто, когда оба они играют одновременно, они отменяются. Как я могу это исправить? Поправьте меня, если я вас неправильно понял. Спасибо! –

+0

В чем проблема? –

Смежные вопросы