zoukankan      html  css  js  c++  java
  • 音频视频声音在三方应用的处理

    public class SimpleAudioFocusHelper {
    private AudioManager mAudioManager;
    private AudioManager.OnAudioFocusChangeListener mAudioFocusChangeListener = focusChange -> {

    };

    public SimpleAudioFocusHelper() {
    mAudioManager =
    (AudioManager) KwaiApp.getAppContext().getSystemService(Context.AUDIO_SERVICE);
    }

    public boolean requestAudioFocus() {
    if (mAudioFocusChangeListener == null || mAudioManager == null) {
    return false;
    }

    final int granted = AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    return granted == mAudioManager.requestAudioFocus(buildFocusRequest());
    } else {
    return granted == mAudioManager.requestAudioFocus(mAudioFocusChangeListener,
    AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
    }

    }

    public boolean abandonFocus() {
    if (mAudioFocusChangeListener == null || mAudioManager == null) {
    return false;
    }

    final int granted = AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    return granted == mAudioManager.abandonAudioFocusRequest(buildFocusRequest());
    } else {
    return granted == mAudioManager.abandonAudioFocus(mAudioFocusChangeListener);
    }
    }

    @TargetApi(Build.VERSION_CODES.O)
    private AudioFocusRequest buildFocusRequest() {
    AudioAttributes attributes = new AudioAttributes.Builder()
    .setLegacyStreamType(AudioManager.STREAM_MUSIC)
    .setUsage(AudioAttributes.USAGE_MEDIA)
    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
    .build();
    return new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
    .setAudioAttributes(attributes)
    .setAcceptsDelayedFocusGain(false)
    .setOnAudioFocusChangeListener(mAudioFocusChangeListener)
    .build();
    }
    }
  • 相关阅读:
    Spring Boot(十一):Spring Boot 中 MongoDB 的使用
    你干啥的?Lombok
    面试必备的分布式事物方案
    Shiro框架详解 tagline
    List中的ArrayList和LinkedList源码分析
    计算机内存管理介绍
    Struts2.5 伪静态的配置
    Hibernate——hibernate的配置测试
    Struts2.5的的环境搭建及跑通流程
    Jsp敏感词过滤
  • 原文地址:https://www.cnblogs.com/liunx1109/p/12167761.html
Copyright © 2011-2022 走看看