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

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

源代码1 项目: youqu_master   文件: BaseIjkVideoView.java
/**
 * Requests to obtain the audio focus
 *
 * @return True if the focus was granted
 */
boolean requestFocus() {
    if (currentFocus == AudioManager.AUDIOFOCUS_GAIN) {
        return true;
    }

    if (mAudioManager == null) {
        return false;
    }

    int status = mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    if (AudioManager.AUDIOFOCUS_REQUEST_GRANTED == status) {
        currentFocus = AudioManager.AUDIOFOCUS_GAIN;
        return true;
    }

    startRequested = true;
    return false;
}
 
源代码2 项目: Telegram-FOSS   文件: MediaController.java
private void checkAudioFocus(MessageObject messageObject) {
    int neededAudioFocus;
    if (messageObject.isVoice() || messageObject.isRoundVideo()) {
        if (useFrontSpeaker) {
            neededAudioFocus = 3;
        } else {
            neededAudioFocus = 2;
        }
    } else {
        neededAudioFocus = 1;
    }
    if (hasAudioFocus != neededAudioFocus) {
        hasAudioFocus = neededAudioFocus;
        int result;
        if (neededAudioFocus == 3) {
            result = NotificationsController.audioManager.requestAudioFocus(this, AudioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN);
        } else {
            result = NotificationsController.audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, neededAudioFocus == 2 ? AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK : AudioManager.AUDIOFOCUS_GAIN);
        }
        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            audioFocus = AUDIO_FOCUSED;
        }
    }
}
 
源代码3 项目: v9porn   文件: ExoVideoView.java
/**
 * Requests to obtain the audio focus
 *
 * @return True if the focus was granted
 */
public boolean requestFocus() {
    if (!handleAudioFocus || currentFocus == AudioManager.AUDIOFOCUS_GAIN) {
        return true;
    }

    if (audioManager == null) {
        return false;
    }

    int status = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    if (AudioManager.AUDIOFOCUS_REQUEST_GRANTED == status) {
        currentFocus = AudioManager.AUDIOFOCUS_GAIN;
        return true;
    }

    startRequested = true;
    return false;
}
 
源代码4 项目: apollo-DuerOS   文件: AudioTrackManagerSingle.java
/**
 * 
 * @return 0:success; 1:failed;
 */
private int getAudioTrackFocus() {
    // Request audio focus for playback
    int result =
            mAM.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        LogUtil.d(TAG, "audio track get successfully!");

        return 0;
    } else {
        LogUtil.d(TAG, "audio track get failed!");

        return -1;
    }
}
 
private int getTTSAudioTrackFocus(int ttsType) {
    setTTSType(ttsType);
    if (ttsType == PCMPlayerUtils.TTS_TYPE_VR) {
        return 0;
    }

    int audioFocusType;

    audioFocusType = AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;

    int ttsAudioTrackType = VehicleFactoryAdapter.getInstance().getTTSAudioTrackStreamType();
    int result = mAM.requestAudioFocus(mTTSAudioFocusListener, ttsAudioTrackType, audioFocusType);
    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        LogUtil.d(TAG, "tts audio track get successfully!");

        return 0;
    } else {
        LogUtil.d(TAG, "tts audio track get failed!");

        return -1;
    }

}
 
源代码6 项目: Dashchan   文件: VideoUnit.java
private boolean setPlaying(boolean playing, boolean resetFocus) {
	if (player.isPlaying() != playing) {
		if (resetFocus && player.isAudioPresent()) {
			if (playing) {
				if (audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)
						!= AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
					return false;
				}
			} else {
				audioManager.abandonAudioFocus(this);
			}
		}
		player.setPlaying(playing);
		pausedByTransientLossOfFocus = false;
	}
	return true;
}
 
源代码7 项目: speechutils   文件: AudioPauser.java
/**
 * Requests audio focus with the goal of pausing any existing audio player.
 * Additionally mutes the music stream, since some audio players might
 * ignore the focus request.
 * In other words, during the pause no sound will be heard,
 * but whether the audio resumes from the same position after the pause
 * depends on the audio player.
 */
public void pause() {
    if (!isPausing) {
        int result = mAudioManager.requestAudioFocus(mAfChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.i("AUDIOFOCUS_REQUEST_GRANTED");
        }

        if (mIsMuteStream) {
            mCurrentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
            if (mCurrentVolume > 0) {
                mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
            }
        }
        isPausing = true;
    }
}
 
源代码8 项目: mollyim-android   文件: AudioManagerCompat.java
@Override
public void abandonCallAudioFocus() {
  if (audioFocusRequest == null) {
    Log.w(TAG, "Don't currently have audio focus. Ignoring...");
    return;
  }

  int result = audioManager.abandonAudioFocusRequest(audioFocusRequest);

  if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
    Log.w(TAG, "Audio focus abandon failed. Result code: " + result);
  }

  audioFocusRequest = null;
}
 
源代码9 项目: LyricHere   文件: LocalPlayback.java
/**
 * Try to get the system audio focus.
 */
private void tryToGetAudioFocus() {
    LogUtils.d(TAG, "tryToGetAudioFocus");
    if (mAudioFocus != AUDIO_FOCUSED) {
        int result = mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
                AudioManager.AUDIOFOCUS_GAIN);
        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            mAudioFocus = AUDIO_FOCUSED;
        }
    }
}
 
源代码10 项目: Cirrus_depricated   文件: MediaService.java
/**
 * Requests the audio focus to the Audio Manager
 */
private void tryToGetAudioFocus() {
    if (mAudioFocus != AudioFocus.FOCUS
            && mAudioManager != null
            && (AudioManager.AUDIOFOCUS_REQUEST_GRANTED == mAudioManager.requestAudioFocus( this,
            AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN))
            ) {
        mAudioFocus = AudioFocus.FOCUS;
    }
}
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ExoPlayerAdapter playerAdapter = new ExoPlayerAdapter(getActivity());
    playerAdapter.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
    mMediaPlayerGlue = new VideoMediaPlayerGlue(getActivity(), playerAdapter);
    mMediaPlayerGlue.setHost(mHost);
    AudioManager audioManager = (AudioManager) getActivity()
            .getSystemService(Context.AUDIO_SERVICE);
    if (audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        Log.w(TAG, "video player cannot obtain audio focus!");
    }

    mMediaPlayerGlue.setMode(PlaybackControlsRow.RepeatAction.NONE);
    MediaMetaData intentMetaData = getActivity().getIntent().getParcelableExtra(
            VideoExampleActivity.TAG);
    if (intentMetaData != null) {
        mMediaPlayerGlue.setTitle(intentMetaData.getMediaTitle());
        mMediaPlayerGlue.setSubtitle(intentMetaData.getMediaArtistName());
        mMediaPlayerGlue.getPlayerAdapter().setDataSource(
                Uri.parse(intentMetaData.getMediaSourcePath()));
    } else {
        mMediaPlayerGlue.setTitle("Diving with Sharks");
        mMediaPlayerGlue.setSubtitle("A Googler");
        mMediaPlayerGlue.getPlayerAdapter().setDataSource(Uri.parse(URL));
    }
    PlaybackSeekDiskDataProvider.setDemoSeekProvider(mMediaPlayerGlue);
    playWhenReady(mMediaPlayerGlue);
    setBackgroundType(BG_LIGHT);
}
 
源代码12 项目: music_player   文件: PlayService.java
public boolean removeAudioFocus() {
    try {
        if (audioManager != null) {
            return AudioManager.AUDIOFOCUS_REQUEST_GRANTED == audioManager.abandonAudioFocus(this);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return true;
}
 
源代码13 项目: HaoReader   文件: AudioFocusManager.java
public boolean requestAudioFocus() {
    RunMediaPlayer.playSilentSound(ContextHolder.getContext());
    final int request;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && mFocusRequest != null) {
        request = audioManager.requestAudioFocus(mFocusRequest);
    } else {
        request = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    }
    return (request == AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
}
 
源代码14 项目: tv-samples   文件: MusicPlaybackService.java
public void playMediaItem(MediaMetaData mediaItemToPlay) {
    if (mediaItemToPlay == null) {
        throw new IllegalArgumentException("mediaItemToPlay is null!");
    }
    int mediaItemPos = findMediaItemPosition(mediaItemToPlay);
    if (mediaItemPos == -1) {
        throw new IllegalArgumentException("mediaItemToPlay not found in the media item list!");
    }

    if (mAudioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        Log.e(TAG, "playMediaItem cannot obtain audio focus!");
        return;
    }

    if (!mMediaSession.isActive()) {
        mMediaSession.setActive(true);
    }

    if (mCurrentMediaItem != null && mInitialized &&
            mCurrentMediaItem.getMediaSourceUri().equals(mediaItemToPlay.getMediaSourceUri())) {
        if (!isPlaying()) {
            // This media item had been already playing but is being paused. Will resume the player.
            // No need to reset the player
            play();
        }
    } else {
        mCurrentMediaPosition = mediaItemPos;
        notifyMediaItemChanged(mediaItemToPlay);
        prepareNewMedia();
    }
}
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ExoPlayerAdapter playerAdapter = new ExoPlayerAdapter(getActivity());
    playerAdapter.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
    mMediaPlayerGlue = new VideoMediaPlayerGlue(getActivity(), playerAdapter);
    mMediaPlayerGlue.setHost(mHost);
    AudioManager audioManager = (AudioManager) getActivity()
            .getSystemService(Context.AUDIO_SERVICE);
    if (audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        Log.w(TAG, "video player cannot obtain audio focus!");
    }

    mMediaPlayerGlue.setMode(PlaybackControlsRow.RepeatAction.NONE);
    MediaMetaData intentMetaData = getActivity().getIntent().getParcelableExtra(
            VideoExampleActivity.TAG);
    if (intentMetaData != null) {
        mMediaPlayerGlue.setTitle(intentMetaData.getMediaTitle());
        mMediaPlayerGlue.setSubtitle(intentMetaData.getMediaArtistName());
        mMediaPlayerGlue.getPlayerAdapter().setDataSource(
                Uri.parse(intentMetaData.getMediaSourcePath()));
    } else {
        mMediaPlayerGlue.setTitle("Diving with Sharks");
        mMediaPlayerGlue.setSubtitle("A Googler");
        mMediaPlayerGlue.getPlayerAdapter().setDataSource(Uri.parse(URL));
    }
    PlaybackSeekDiskDataProvider.setDemoSeekProvider(mMediaPlayerGlue);
    playWhenReady(mMediaPlayerGlue);
    setBackgroundType(BG_LIGHT);
}
 
源代码16 项目: MyBookshelf   文件: ReadAloudService.java
/**
 * @return 音频焦点
 */
private boolean requestFocus() {
    if (!isAudio) {
        MediaManager.playSilentSound(this);
    }
    int request;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        request = audioManager.requestAudioFocus(mFocusRequest);
    } else {
        request = audioManager.requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
    }
    return (request == AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
}
 
源代码17 项目: Linphone4Android   文件: LinphoneManager.java
private void requestAudioFocus(int stream){
	if (!mAudioFocused){
		int res = mAudioManager.requestAudioFocus(null, stream, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT );
		Log.d("Audio focus requested: " + (res == AudioManager.AUDIOFOCUS_REQUEST_GRANTED ? "Granted" : "Denied"));
		if (res == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) mAudioFocused=true;
	}
}
 
源代码18 项目: odyssey   文件: PlaybackService.java
/**
 * Jumps playback to the given index and position inside the song (in milliseconds)
 *
 * @param index    Position of the song to play
 * @param jumpTime Position inside the song (milliseconds)
 */
public void jumpToIndex(int index, int jumpTime) {
    // Cancel possible alerts registered within the AlarmManager
    cancelQuitAlert();

    // Stop playback before starting a new song. This ensures state safety
    mPlayer.stop();

    // Set mCurrentPlayingIndex to new song after checking the bounds
    if (index < mCurrentList.size() && index >= 0) {
        mCurrentPlayingIndex = index;

        /*
         * Make sure service is "started" so android doesn't handle it as a
         * "bound service"
         */
        Intent serviceStartIntent = new Intent(this, PlaybackService.class);
        serviceStartIntent.addFlags(Intent.FLAG_FROM_BACKGROUND);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForegroundService(serviceStartIntent);
        } else {
            startService(serviceStartIntent);
        }

        // Get the item that is requested to be played.
        TrackModel item = mCurrentList.get(mCurrentPlayingIndex);

        // Request audio focus before doing anything
        AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        int result = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
        if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            // Abort command if audio focus was not granted
            return;
        }

        // Notify the PlaybackServiceStatusHelper that a new media session is started
        mPlaybackServiceStatusHelper.startMediaSession();

        // Try to start playback of the track url.
        try {
            mPlayer.play(item.getTrackURL(), jumpTime);
        } catch (GaplessPlayer.PlaybackException e) {
            // Handle an error of the play command
            handlePlaybackException(e);
        }

        // Sets the mNextPlayingIndex to the index just started, because the PlaybackStartListener will
        // set the mCurrentPlayingIndex to the mNextPlayingIndex. This ensures that no additional code
        // is necessary to handle playback start
        mNextPlayingIndex = index;
    } else if (index < 0 || index > mCurrentList.size()) {
        // Invalid index
        stop();
    }

}
 
private boolean requestAudioFocus() {
    final int result = mAudioManager.requestAudioFocus(this,
            AudioManager.STREAM_MUSIC,
            AudioManager.AUDIOFOCUS_GAIN);
    return result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
}
 
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);
        }
    }