2016-12-09 2 views
0

Я разрабатываю одно приложение с фоновым звуком через приложение, используя фоновый сервис, поэтому проблема заключается в том, что я запускаю свое приложение, и если моя музыка плеер работает - и звуковые столкновения друг с другом.Как предотвратить столкновения звука музыкального плеера с фоновым звуком моего приложения в студии android

Мой вопрос: как предотвратить столкновения музыкального проигрывателя звук и фоновый звук моего приложения

фактическая: музыка столкновений друг с другом.

Ожидается: если проигрыватель работает, он должен быть паузой и фоновым звуком Мое приложение предназначено только для игр.

+0

Это своего рода вопрос noobie, пожалуйста, пройдите через медиаплеер полностью, после чего через MediaBrowserServiceCompat, который был запущен и представлен компанией @ianhanniballake. Вы должны прочитать MediaPlayer в целом, прежде чем внедрять какую-либо его часть. Если бы вы покончили с этим, возможно, это было очень основное явление, отмеченное в документации. Начните с этого первого https://www.youtube.com/watch?v=FBC1FgWe5X4, затем просмотрите его https://www.youtube.com/watch?v=XQwe30cZffg –

+0

@DushyantSuthar Спасибо за ваш комментарий, любезно отметил , но это было за 5 месяцев до этого, я был новым в android, и я его уже читал, но у меня были проблемы, и именно поэтому я отправляю этот вопрос. –

ответ

1

Вы должны request audio focus по телефону requestAudioFocus(). Это сообщает другому приложению, что вы хотите что-то сыграть, и что они должны остановиться (в случае, если вы запрашиваете AUDIOFOCUS_GAIN, как это было бы удобно, если вы постоянно воспроизводите фоновый звук).

requestAudioFocus Обратите внимание, что требует от вас пройти в OnAudioFocusChangeListener - так же, как другое приложение, вы должны также уважение, когда другие приложения запросить аудио фокуса и остановить свой фоновый звук.

Примечание: вы также должны всегда предлагать возможность отключать фоновые звуки (и с ним любые запросы на аудиофокус). Это позволяет пользователям продолжать слушать музыку, даже находясь в вашем приложении.

+0

где я предполагаю написать requestAudioFocus()? как использовать? –

+0

Вы прочитали первую ссылку в ответе? «Прежде чем ваше приложение начнет воспроизводить любой звук, оно должно содержать аудиофокус для потока, который будет использоваться» – ianhanniballake

+0

Большое вам спасибо @ ianhanniballake, что он работает, и теперь, как возобновить эту музыку в медиаплеерах? –

1

Как я разрешаю эту проблему, я просто разрешаю столкновения двух музыкальных произведений, останавливая музыкальный проигрыватель и играя в фоновой музыке приложения.

AudioManager.OnAudioFocusChangeListener afChangeListener; 

AudioManager am = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); 
        int result = am.requestAudioFocus(afChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); 

        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { 
         // Start playback. 
         mPlayer.setLooping(true); 
         final float volume = (float) (1 - (Math.log(MAX_VOLUME - 85)/Math.log(MAX_VOLUME))); 
         mPlayer.setVolume(volume, volume); 
         mPlayer.start(); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

Примечание: код для остановки музыки, а не для возобновления музыки.

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