audiomanager.java,CarAudioManager.java

/*

* Copyright (C) 2015 The Android Open Source Project

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package android.support.car.media;

import android.media.AudioAttributes;

import android.media.AudioManager.OnAudioFocusChangeListener;

import android.os.RemoteException;

import android.support.annotation.IntDef;

import android.support.car.CarManagerBase;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

/**

* APIs for handling car specific audio stuffs.

*/

public abstract class CarAudioManager implements CarManagerBase {

/**

* Audio usage for unspecified type.

*/

public static final int CAR_AUDIO_USAGE_DEFAULT = 0;

/**

* Audio usage for playing music.

*/

public static final int CAR_AUDIO_USAGE_MUSIC = 1;

/**

* Audio usage for H/W radio.

*/

public static final int CAR_AUDIO_USAGE_RADIO = 2;

/**

* Audio usage for playing navigation guidance.

*/

public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3;

/**

* Audio usage for voice call

*/

public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4;

/**

* Audio usage for voice search or voice command.

*/

public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5;

/**

* Audio usage for playing alarm.

*/

public static final int CAR_AUDIO_USAGE_ALARM = 6;

/**

* Audio usage for notification sound.

*/

public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7;

/**

* Audio usage for system sound like UI feedback.

*/

public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8;

/**

* Audio usage for playing safety alert.

*/

public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9;

/** @hide */

public static final int CAR_AUDIO_USAGE_MAX = CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT;

/** @hide */

@IntDef({CAR_AUDIO_USAGE_DEFAULT, CAR_AUDIO_USAGE_MUSIC, CAR_AUDIO_USAGE_RADIO,

CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE, CAR_AUDIO_USAGE_VOICE_CALL,

CAR_AUDIO_USAGE_VOICE_COMMAND, CAR_AUDIO_USAGE_ALARM, CAR_AUDIO_USAGE_NOTIFICATION,

CAR_AUDIO_USAGE_SYSTEM_SOUND, CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT})

@Retention(RetentionPolicy.SOURCE)

public @interface CarAudioUsage {}

/**

* Get {@link AudioAttrbutes} relevant for the given usage in car.

* @param carUsage

* @return

*/

public abstract AudioAttributes getAudioAttributesForCarUsage(@CarAudioUsage int carUsage);

/**

* Request audio focus.

* Send a request to obtain the audio focus.

* @param l

* @param requestAttributes

* @param durationHint

* @param flags

*/

public abstract int requestAudioFocus(OnAudioFocusChangeListener l,

AudioAttributes requestAttributes,

int durationHint,

int flags) throws IllegalArgumentException;

/**

* Abandon audio focus. Causes the previous focus owner, if any, to receive focus.

* @param l

* @param aa

* @return {@link #AUDIOFOCUS_REQUEST_FAILED} or {@link #AUDIOFOCUS_REQUEST_GRANTED}

*/

public abstract int abandonAudioFocus(OnAudioFocusChangeListener l, AudioAttributes aa);

}

Java程序

|

111行

|

3.75 KB

/*

* Copyright (C) 2015 The Android Open Source Project

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package android.support.car.media;

import android.media.AudioAttributes;

import android.media.AudioManager.OnAudioFocusChangeListener;

import android.os.RemoteException;

import android.support.annotation.IntDef;

import android.support.car.CarManagerBase;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

/**

* APIs for handling car specific audio stuffs.

*/

public abstract class CarAudioManager implements CarManagerBase {

/**

* Audio usage for unspecified type.

*/

public static final int CAR_AUDIO_USAGE_DEFAULT = 0;

/**

* Audio usage for playing music.

*/

public static final int CAR_AUDIO_USAGE_MUSIC = 1;

/**

* Audio usage for H/W radio.

*/

public static final int CAR_AUDIO_USAGE_RADIO = 2;

/**

* Audio usage for playing navigation guidance.

*/

public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3;

/**

* Audio usage for voice call

*/

public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4;

/**

* Audio usage for voice search or voice command.

*/

public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5;

/**

* Audio usage for playing alarm.

*/

public static final int CAR_AUDIO_USAGE_ALARM = 6;

/**

* Audio usage for notification sound.

*/

public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7;

/**

* Audio usage for system sound like UI feedback.

*/

public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8;

/**

* Audio usage for playing safety alert.

*/

public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9;

/** @hide */

public static final int CAR_AUDIO_USAGE_MAX = CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT;

/** @hide */

@IntDef({CAR_AUDIO_USAGE_DEFAULT, CAR_AUDIO_USAGE_MUSIC, CAR_AUDIO_USAGE_RADIO,

CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE, CAR_AUDIO_USAGE_VOICE_CALL,

CAR_AUDIO_USAGE_VOICE_COMMAND, CAR_AUDIO_USAGE_ALARM, CAR_AUDIO_USAGE_NOTIFICATION,

CAR_AUDIO_USAGE_SYSTEM_SOUND, CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT})

@Retention(RetentionPolicy.SOURCE)

public @interface CarAudioUsage {}

/**

* Get {@link AudioAttrbutes} relevant for the given usage in car.

* @param carUsage

* @return

*/

public abstract AudioAttributes getAudioAttributesForCarUsage(@CarAudioUsage int carUsage);

/**

* Request audio focus.

* Send a request to obtain the audio focus.

* @param l

* @param requestAttributes

* @param durationHint

* @param flags

*/

public abstract int requestAudioFocus(OnAudioFocusChangeListener l,

AudioAttributes requestAttributes,

int durationHint,

int flags) throws IllegalArgumentException;

/**

* Abandon audio focus. Causes the previous focus owner, if any, to receive focus.

* @param l

* @param aa

* @return {@link #AUDIOFOCUS_REQUEST_FAILED} or {@link #AUDIOFOCUS_REQUEST_GRANTED}

*/

public abstract int abandonAudioFocus(OnAudioFocusChangeListener l, AudioAttributes aa);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值