Managing Audio Playback之Dealing with Audio Output Hardware

    xiaoxiao2026-05-25  2

    用户可以通过内置的speaker,耳机等很多途径输出audio. 可以用AudioManger来决定是哪里输出audio if (isBluetoothA2dpOn()) {     // Adjust output for Bluetooth. } else if (isSpeakerphoneOn()) {     // Adjust output for Speakerphone. } else if (isWiredHeadsetOn()) {     // Adjust output for headsets } else {     // If audio plays and noone can hear it, is it still playing? } 当耳机拔下或者蓝牙设备连接失效是,audio stream 会自动从内置的speaker输出.这个过程肯定会产生噪音. 当这种情况发生是系统会发送一个ACTION_AUDIO_BECOMING_NOSIY的广播,你可以监听这个广播来暂停音乐,或者降低游戏是的声音. code 如下: private class NoisyAudioStreamReceiver extends BroadcastReceiver {     @Override     public void onReceive(Context context, Intent intent) {         if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {             // Pause the playback         }     } } private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY); private void startPlayback() {     registerReceiver(myNoisyAudioStreamReceiver(), intentFilter); } private void stopPlayback() {     unregisterReceiver(myNoisyAudioStreamReceiver); }
    转载请注明原文地址: https://ju.6miu.com/read-1310063.html
    最新回复(0)