android - 如何在插入耳机时降低 MediaPlayer 的音量?

标签 android media-player volume android-audiomanager headphones

针对 Android 2.2。

我需要检查用户在收听媒体时是使用扬声器还是耳机。到目前为止,我发现的最好的是 isWiredHeadsetOn方法。太糟糕了,它已被弃用。有没有更好的方法来知道是否插入了耳机?

真正的问题是:如何在插入耳机时降低 MediaPlayer 的音量?在播放开始时(即通过 bool 检查)和播放期间(即通过事件)?

最佳答案

我发布了一个链接,因为我认为它有助于回答并因此转换为评论。以下代码来自,我不相信。他们用它来监听未插入的耳机,但对于您所要求的内容,应该可以使用相同的概念: Headphone Jack Listener Android

private class NoisyAudioStreamReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
            pause();
        }
    }
}

private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);

private void startPlayback() {
    registerReceiver(myNoisyAudioStreamReceiver(), intentFilter);
}

private void stopPlayback() {
    unregisterReceiver(myNoisyAudioStreamReceiver);
}

关于android - 如何在插入耳机时降低 MediaPlayer 的音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258694/

相关文章:

java - KeyListener 无法与 Java 中的 MediaPlayer 一起正常工作

amazon-web-services - 如何在保留期后自动删除AWS快照?

android - 如何在Android 7.1上设置最大声音

android - 如何在Sync Adapter onPerformSync 方法中访问新添加的联系人?

java - Json 到 kotlin 数据类

c# - Media Player搜索选项无法正常工作

c# - 如何在 NAudio 中使用 volumeSlider?

android - 如何阻止 ADT Logcat View 在 Eclipse 中自动弹出?

android - 如何根据 firebase 值检查字符串

video-streaming - VLC 播放器支持 MPEG-DASH