Я хочу приостановить MediaPlayer, когда пользователь отключает наушники. Я узнал, что могу использовать трансляцию "ACTION_AUDIO_BECOMING_NOISY"
, поэтому я попробовал!Получение отсоединения наушников занимает слишком много времени
Теоретически это работает, НО время получения занимает слишком много времени. Музыка все еще воспроизводится в течение 3-5 секунд, прежде чем она действительно остановится. Это не будет приемлемо для пользователя.
Как другие devolopers могут приостановить его в миллисекундах? Есть ли лучшие Soloutions?
Мой BroadcastReceiver, которая на самом деле для уведомления:
public class NotificationBroadcast extends BroadcastReceiver {
...
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
Intent iPause = new Intent(context , SongService.class);
iPause.putExtra("com.Hohos.mplay.Services.SongService.MEDIA_ACTION", NOTIFY_EXTRA_PAUSE);
context.startService(iPause);
}
...
}
Я также добавил <uses-permission android:name="android.permission.ACTION_HEADSET_PLUG"/>
, который реально не имеет никакого значения
Спасибо за вашу помощь, ребята!
Спасибо за вашу помощь , НО как-то я не получаю трансляцию. Я использовал « » в своем намерении фильтра Получателя и использовал разрешение « " , Почему я не могу получить трансляцию? (Я также отлаживал его проверку) –
Хорошо, я узнал, что мне нужно регистрировать его динамически. Так что это невозможно сделать, зарегистрировав его манифестом. Спасибо, Маттиа! –