android.media.AudioManager#AUDIOFOCUS_REQUEST_FAILED源码实例Demo

下面列出了android.media.AudioManager#AUDIOFOCUS_REQUEST_FAILED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: MediaFocusControl.java
/** see AudioManager.dispatchFocusChange(AudioFocusInfo afi, int focusChange, AudioPolicy ap) */
int dispatchFocusChange(AudioFocusInfo afi, int focusChange) {
    if (DEBUG) {
        Log.v(TAG, "dispatchFocusChange " + focusChange + " to afi client="
                + afi.getClientId());
    }
    synchronized (mAudioFocusLock) {
        if (mFocusPolicy == null) {
            if (DEBUG) { Log.v(TAG, "> failed: no focus policy" ); }
            return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
        }
        final FocusRequester fr;
        if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
            fr = mFocusOwnersForFocusPolicy.remove(afi.getClientId());
        } else {
            fr = mFocusOwnersForFocusPolicy.get(afi.getClientId());
        }
        if (fr == null) {
            if (DEBUG) { Log.v(TAG, "> failed: no such focus requester known" ); }
            return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
        }
        return fr.dispatchFocusChange(focusChange);
    }
}
 
@Override
public void onAudioFocusChange(int focus){
    Log.v(TAG, "Audio focus changed");
    switch(focus) {
        case AudioManager.AUDIOFOCUS_LOSS:
            // Another app has gained focus;
            handleFocusLost();
            break;
        case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
            handlePauseRequest();
            break;
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
            if (radio.isAttached()) {
                handleFocusDuck();
            }
            break;
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
            if (radio.isAttached()) {
                handleMuteRequest();
            }
            break;
        case AudioManager.AUDIOFOCUS_GAIN:
            handleFocusGain();
            break;
    }
}
 
private void requestAudioFocus() {
    if (!isAudioFocused) {
        int result = audioManager.requestAudioFocus(mOnFocusChangeListener, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);
        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.d(TAG, "AudioFocus granted");
            isAudioFocused = true;
        } else if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
            Log.d(TAG, "AudioFocus failed");
            isAudioFocused = false;
        }
    }
}
 
源代码4 项目: apollo-DuerOS   文件: VehiclePCMPlayer.java
public int abandonVRAudioFocus() {
    if (mPriorityArbitrationModule == null) {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }

    return mPriorityArbitrationModule.abandonVRAudioFocus();
}
 
@Override
public int requestVRAudioFocus() {
    LogUtil.d(TAG, "request VR audio focus!");

    if (mAM != null) {
        // abandon Navi TTS audio focus
        mAM.abandonAudioFocus(mTTSAudioFocusListener);
        return mAM.requestAudioFocus(mVRAudioFocusListener, AudioManager.STREAM_MUSIC,
                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
    } else {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }
}
 
public int abandonVRAudioFocus() {
    LogUtil.d(TAG, "abonden VR audio focus!");

    if (mAM != null) {
        return mAM.abandonAudioFocus(mVRAudioFocusListener);
    } else {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }
}
 
@Override
public int requestVRAudioFocus() {
    LogUtil.d(TAG, "request VR audio focus!");

    if (mAM != null) {
        // abandon Navi TTS audio focus
        mAM.abandonAudioFocus(mTTSAudioFocusListener);
        return mAM.requestAudioFocus(mVRAudioFocusListener, VehicleFactoryAdapter.getInstance()
                .getTTSAudioTrackStreamType(), AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
    } else {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }
}
 
public int abandonVRAudioFocus() {
    LogUtil.d(TAG, "abonden VR audio focus!");

    if (mAM != null) {
        return mAM.abandonAudioFocus(mVRAudioFocusListener);
    } else {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }
}
 
private void requestAudioFocus() {
    if (!isAudioFocused) {
        int result = audioManager.requestAudioFocus(mOnFocusChangeListener, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);
        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.d(TAG, "AudioFocus granted");
            isAudioFocused = true;
        } else if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
            Log.d(TAG, "AudioFocus failed");
            isAudioFocused = false;
        }
    }
}
 
源代码10 项目: mytracks   文件: AnnouncementPeriodicTask.java
@Override
public void onUtteranceCompleted(String utteranceId) {
  int result = audioManager.abandonAudioFocus(null);
  if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
    Log.w(TAG, "Failed to relinquish audio focus.");
  }
}
 
源代码11 项目: mytracks   文件: AnnouncementPeriodicTask.java
/**
 * Speaks the announcement.
 * 
 * @param announcement the announcement
 */
private void speakAnnouncement(String announcement) {
  int result = audioManager.requestAudioFocus(
      null, TextToSpeech.Engine.DEFAULT_STREAM, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
  if (result == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
    Log.w(TAG, "Failed to request audio focus.");
  }

  /*
   * We don't care about the utterance id. It is supplied here to force
   * onUtteranceCompleted to be called.
   */
  tts.speak(announcement, TextToSpeech.QUEUE_FLUSH, SPEECH_PARAMS);
}
 
源代码12 项目: Pix-Art-Messenger   文件: MediaViewerActivity.java
@Override
public void onAudioFocusChange(int focusChange) {
    if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        Log.i(Config.LOGTAG, "Audio focus granted.");
    } else if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
        Log.i(Config.LOGTAG, "Audio focus failed.");
    }
}
 
源代码13 项目: android-app   文件: TtsService.java
private void abandonAudioFocus() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        audioManager.abandonAudioFocus(audioFocusChangeListener);
    } else {
        if (audioFocusRequest != null && audioManager.abandonAudioFocusRequest(audioFocusRequest)
                != AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
            audioFocusRequest = null;
        }
    }
    isAudioFocusGranted = false;
}
 
public void requestAudioFocus() {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
            if (hasAudioFocus) {
                return;
            }

            if (audioManager != null) {
                AudioAttributes playbackAttributes = new AudioAttributes.Builder()
                        .setUsage(AudioAttributes.USAGE_MEDIA)
                        .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) // CONTENT_TYPE_SPEECH
                        .build();
                focusRequest = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
                        .setAudioAttributes(playbackAttributes)
                        .setAcceptsDelayedFocusGain(true)
//                    .setWillPauseWhenDucked(true)
                        .setOnAudioFocusChangeListener(this)
                        .build();

                int res = audioManager.requestAudioFocus(focusRequest);
                synchronized(focusLock) {
                    if (res == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
                        playbackNowAuthorized = false;
                    } else if (res == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
                        playbackNowAuthorized = true;
                        hasAudioFocus = true;
                    } else if (res == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
                        playbackDelayed = true;
                        playbackNowAuthorized = false;
                    }
                }
                Log.e(TAG, "audioRequest: " + res);
            }
        }
        else {
            int result = 0;
            if (audioManager != null) {
                if (hasAudioFocus) {
                    return;
                }

                result = audioManager.requestAudioFocus(this,
                        // Use the music stream.
                        AudioManager.STREAM_MUSIC,
                        // Request permanent focus.
                        AudioManager.AUDIOFOCUS_GAIN);
            }
            if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
                hasAudioFocus = true;
            }
            Log.e(TAG, "audioRequest: " + result);
        }
    }
 
源代码15 项目: apollo-DuerOS   文件: VehiclePCMPlayer.java
public int requestVRAudioFocus() {
    if (mPriorityArbitrationModule == null) {
        return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
    }
    return mPriorityArbitrationModule.requestVRAudioFocus();
}
 
源代码16 项目: apollo-DuerOS   文件: ArbitrationModuleSingel.java
public int requestVRAudioFocus() {
    return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
}
 
源代码17 项目: apollo-DuerOS   文件: ArbitrationModuleSingel.java
public int abandonVRAudioFocus() {
    return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
}