public final class AudioAttributes
extends Object
implements Parcelable
java.lang.Object | |
↳ | android.media.AudioAttributes |
一个类,用于封装描述有关音频流信息的属性集合。
AudioAttributes
取代了流类型的概念(请参阅STREAM_MUSIC
或STREAM_ALARM
)以定义音频播放的行为。 通过允许应用程序定义属性,属性允许应用程序指定比在流类型中传达的更多信息:
USAGE_MEDIA
and USAGE_ALARM
. These two examples are the closest to stream types, but more detailed use cases are available. Usage information is more expressive than a stream type, and allows certain platforms or routing policies to use this information for more refined volume or routing decisions. Usage is the most important information to supply in AudioAttributes
and it is recommended to build any instance with this information supplied, see AudioAttributes.Builder
for exceptions.CONTENT_TYPE_MOVIE
for a movie streaming service or CONTENT_TYPE_MUSIC
for a music playback application) this information might be used by the audio framework to selectively configure some audio post-processing blocks.AudioAttributes
例如在 AudioTrack
构造函数之一中使用(请参阅 AudioTrack(AudioAttributes, AudioFormat, int, int, int)
),以配置 MediaPlayer
(请参阅 setAudioAttributes(AudioAttributes)
或 Notification
(请参阅 audioAttributes
)。通过其构建器 AudioAttributes.Builder
构建 AudioAttributes
实例。
Nested classes |
|
---|---|
class |
AudioAttributes.Builder |
Constants |
|
---|---|
int |
CONTENT_TYPE_MOVIE 当内容类型是音轨时使用的内容类型值,通常伴随着电影或电视节目。 |
int |
CONTENT_TYPE_MUSIC 内容类型为音乐时使用的内容类型值。 |
int |
CONTENT_TYPE_SONIFICATION 当内容类型是用于伴随用户操作的声音(例如表示按键点击的哔哔声或声音效果)或事件(例如游戏中接收到的奖励声音的类型)时使用的内容类型值。 |
int |
CONTENT_TYPE_SPEECH 内容类型为语音时使用的内容类型值。 |
int |
CONTENT_TYPE_UNKNOWN 内容类型值未知时使用的内容类型值,或者不是定义的内容类型值。 |
int |
FLAG_AUDIBILITY_ENFORCED 标志定义了系统将确保声音的可听性的行为。 |
int |
FLAG_HW_AV_SYNC 请求使用支持硬件A / V同步的输出流的标志。 |
int |
FLAG_LOW_LATENCY 创建AudioTrack时请求低延迟路径的标志。 |
int |
USAGE_ALARM 用法是警报时使用的使用情况值(例如, |
int |
USAGE_ASSISTANCE_ACCESSIBILITY 用法用于可访问性时使用的使用情况值,如使用屏幕阅读器。 |
int |
USAGE_ASSISTANCE_NAVIGATION_GUIDANCE 在驾驶或导航方向使用时使用的使用情况值。 |
int |
USAGE_ASSISTANCE_SONIFICATION 使用量超声化时使用的使用值,例如用户界面声音。 |
int |
USAGE_GAME 用法用于游戏音频时使用的使用情况值。 |
int |
USAGE_MEDIA 使用情况是媒体时使用的使用情况值,如音乐或电影声轨。 |
int |
USAGE_NOTIFICATION 使用情况是通知时使用的使用情况值。 |
int |
USAGE_NOTIFICATION_COMMUNICATION_DELAYED 当使用情况是通知非直接类型的通信(如电子邮件)时使用的使用情况值。 |
int |
USAGE_NOTIFICATION_COMMUNICATION_INSTANT 当使用情况是“即时”通信(如聊天或SMS)的通知时使用的使用情况值。 |
int |
USAGE_NOTIFICATION_COMMUNICATION_REQUEST 当使用情况是进入/结束通信的请求时使用的使用情况值,例如VoIP通信或视频会议。 |
int |
USAGE_NOTIFICATION_EVENT 当用法吸引用户注意时使用的使用值,如提醒或电量不足警告。 |
int |
USAGE_NOTIFICATION_RINGTONE 使用情况为电话铃声时使用的使用情况值。 |
int |
USAGE_UNKNOWN 用法未知时使用的使用情况值。 |
int |
USAGE_VOICE_COMMUNICATION 用法是语音通信(如电话或VoIP)时使用的使用情况值。 |
int |
USAGE_VOICE_COMMUNICATION_SIGNALLING 当使用情况处于呼叫中信令时使用的使用情况值,例如发出“忙碌”嘟嘟声或DTMF铃声。 |
Inherited constants |
---|
From interface android.os.Parcelable
|
Fields |
|
---|---|
public static final Creator<AudioAttributes> |
CREATOR |
Public methods |
|
---|---|
int |
describeContents() 描述此Parcelable实例的封送表示中包含的特殊对象的种类。 |
boolean |
equals(Object o) 指示其他某个对象是否“等于”这一个。 |
int |
getContentType() 返回内容类型。 |
int |
getFlags() 返回标志。 |
int |
getUsage() 返回使用情况。 |
int |
hashCode() 返回对象的哈希码值。 |
String |
toString() 返回对象的字符串表示形式。 |
void |
writeToParcel(Parcel dest, int flags) 将此对象平铺到一个包裹中。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.os.Parcelable
|
int CONTENT_TYPE_MOVIE
当内容类型是音轨时使用的内容类型值,通常伴随着电影或电视节目。
常量值:3(0x00000003)
int CONTENT_TYPE_SONIFICATION
当内容类型是用于伴随用户操作的声音(例如表示按键点击的哔哔声或声音效果)或事件(例如游戏中接收到的奖励声音的类型)时使用的内容类型值。 这些声音大多是合成的或短Foley的声音。
常量值:4(0x00000004)
int CONTENT_TYPE_SPEECH
内容类型为语音时使用的内容类型值。
常数值:1(0x00000001)
int CONTENT_TYPE_UNKNOWN
内容类型值未知时使用的内容类型值,或者不是定义的内容类型值。
常量值:0(0x00000000)
int FLAG_AUDIBILITY_ENFORCED
标志定义了系统将确保声音的可听性的行为。
常数值:1(0x00000001)
int FLAG_HW_AV_SYNC
请求使用支持硬件A / V同步的输出流的标志。
常量值:16(0x00000010)
int FLAG_LOW_LATENCY
创建AudioTrack时请求低延迟路径的标志。 使用此标志时,采样率必须与设备的本地采样率相匹配。 效果处理也不可用。 请注意,如果使用此标志而未指定bufferSizeInBytes,则AudioTrack的实际缓冲区大小可能太小。 建议在创建AudioTrack时指定一个相当大的缓冲区。 然后通过致电setBufferSizeInFrames(int)
减少实际尺寸。 缓冲区大小可以通过在每次write()调用之后将其降低来优化,直到音频毛刺(通过调用getUnderrunCount()
检测到)。 然后缓冲区大小可以增加,直到没有毛刺。 这个调音步骤应该在玩沉默时完成。 这种技术在延迟和毛刺率之间提供了折衷。
常量值:256(0x00000100)
int USAGE_ASSISTANCE_ACCESSIBILITY
用法用于可访问性时使用的使用情况值,如使用屏幕阅读器。
常量值:11(0x0000000b)
int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
在驾驶或导航方向使用时使用的使用情况值。
常量值:12(0x0000000c)
int USAGE_ASSISTANCE_SONIFICATION
使用量超声化时使用的使用值,例如用户界面声音。
常量值:13(0x0000000d)
int USAGE_NOTIFICATION
使用情况是通知时使用的使用情况值。 查看其他通知用途以获得更多专业用途。
常量值:5(0x00000005)
int USAGE_NOTIFICATION_COMMUNICATION_DELAYED
当使用情况是通知非直接类型的通信(如电子邮件)时使用的使用情况值。
常量值:9(0x00000009)
int USAGE_NOTIFICATION_COMMUNICATION_INSTANT
当使用情况是“即时”通信(如聊天或SMS)的通知时使用的使用情况值。
常量值:8(0x00000008)
int USAGE_NOTIFICATION_COMMUNICATION_REQUEST
当使用情况是进入/结束通信的请求时使用的使用情况值,例如VoIP通信或视频会议。
常量值:7(0x00000007)
int USAGE_NOTIFICATION_EVENT
当用法吸引用户注意时使用的使用值,如提醒或电量不足警告。
常量值:10(0x0000000a)
int USAGE_NOTIFICATION_RINGTONE
使用情况为电话铃声时使用的使用情况值。
常数值:6(0x00000006)
int USAGE_VOICE_COMMUNICATION
用法是语音通信(如电话或VoIP)时使用的使用情况值。
常量值:2(0x00000002)
int USAGE_VOICE_COMMUNICATION_SIGNALLING
当使用情况处于呼叫中信令时使用的使用情况值,例如发出“忙碌”嘟嘟声或DTMF铃声。
常量值:3(0x00000003)
int describeContents ()
描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象将在writeToParcel(Parcel, int)
的输出中包含writeToParcel(Parcel, int)
,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR
位。
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled by this Parcelable object instance. |
boolean equals (Object o)
指示其他某个对象是否“等于”这一个。
equals
方法在非空对象引用上实现等价关系:
x
, x.equals(x)
should return true
. x
and y
, x.equals(y)
should return true
if and only if y.equals(x)
returns true
. x
, y
, and z
, if x.equals(y)
returns true
and y.equals(z)
returns true
, then x.equals(z)
should return true
. x
and y
, multiple invocations of x.equals(y)
consistently return true
or consistently return false
, provided no information used in equals
comparisons on the objects is modified. x
, x.equals(null)
should return false
. 类equals
方法Object
实现了对象上最可能的等价关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
指向同一对象( x == y
的值为true
)时,此方法返回true
。
请注意,无论何时覆盖此方法,通常都需要覆盖 hashCode
方法,以维护 hashCode
方法的一般合同,该方法声明等同对象必须具有相同的哈希代码。
Parameters | |
---|---|
o |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj argument; false otherwise. |
int getContentType ()
返回内容类型。
Returns | |
---|---|
int |
one of the values that can be set in setContentType(int) |
int getUsage ()
返回使用情况。
Returns | |
---|---|
int |
one of the values that can be set in setUsage(int) |
int hashCode ()
返回对象的哈希码值。 为了散列表的好处而支持此方法,例如由HashMap
提供的HashMap
。
hashCode
的总合同是:
hashCode
method must consistently return the same integer, provided no information used in equals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. equals(Object)
method, then calling the hashCode
method on each of the two objects must produce the same integer result. equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. 尽可能合理实用,类Object
定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)
Returns | |
---|---|
int |
a hash code value for this object. |
String toString ()
返回对象的字符串表示形式。 一般来说, toString
方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |
void writeToParcel (Parcel dest, int flags)
将此对象平铺到一个包裹中。
Parameters | |
---|---|
dest |
Parcel : The Parcel in which the object should be written. |
flags |
int : Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE . |