音频属性 AudioAttributes

Audio Attributes是个非常重要的概念,现在好像是取代了之前对音频流的作用。

之前很多函数都会使用Audio Stream作为一个参数,现在都使用了Audio Attributes来替代,因为Audio Attributes能够描述更多的信息,现在Audio Stream仅仅用来标识音量,比如下面的Audio Track,就废弃了streamType参数,改为了AudioAttributes attributes作为参数。

https://developer.android.google.cn/reference/android/media/AudioAttributes?hl=en

//已经废弃的
AudioTrack
Added in API level 3
public AudioTrack (int streamType, 
                int sampleRateInHz, 
                int channelConfig, 
                int audioFormat, 
                int bufferSizeInBytes, 
                int mode)
This constructor is deprecated.
use Builder or AudioTrack(android.media.AudioAttributes, android.media.AudioFormat, int, int, int) to specify the AudioAttributes instead of the stream type which is only for volume control.

//现在可用的
public AudioTrack (AudioAttributes attributes, 
                AudioFormat format, 
                int bufferSizeInBytes, 
                int mode, 
                int sessionId)

AudioAttributes的源码位置在
/frameworks/base/media/java/android/media/AudioAttributes.java

一、Content

Content包括以下几种,

  • Speech
  • Music
  • Movie
  • Sonification(一般是通知音)
  • Unknown

Content描述的是:这个音频的内容是什么,是语音/音乐……

69public final class AudioAttributes implements Parcelable {
   
70    private final static String TAG = 
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Android 开发中,可以使用 XML 文件来配置音频属性和设备属性。以下是一个示例: ```xml <audioAttributes xmlns:android="http://schemas.android.com/apk/res/android" android:usage="USAGE_MEDIA" android:contentType="CONTENT_TYPE_MUSIC" android:flags="FLAG_AUDIBILITY_ENFORCED" android:allowedCapturePolicy="ALLOW_CAPTURE_BY_ALL" android:tags="" android:bundle=""> </audioAttributes> <audioDeviceAttributes xmlns:android="http://schemas.android.com/apk/res/android" android:role="ROLE_SINK" android:type="TYPE_BUILTIN_SPEAKER" android:address="" android:encapsulationMode="ENCAPSULATION_MODE_ELEMENT" android:channelMapping="" android:name="" android:uuid="" android:product="" android:manufacturer="" android:modelName="" android:modelNumber="" android:serialNumber="" android:softwareVersion="" android:hardwareVersion="" android:firmwareVersion="" android:additionalDeviceInfos="" android:profiles="" android:descriptors=""> </audioDeviceAttributes> ``` 其中,`<audioAttributes>` 标签用于描述音频属性,包括 `usage`、`contentType`、`flags`、`allowedCapturePolicy`、`tags` 和 `bundle` 等属性。`<audioDeviceAttributes>` 标签用于描述设备属性,包括 `role`、`type`、`address`、`encapsulationMode`、`channelMapping`、`name`、`uuid`、`product`、`manufacturer`、`modelName`、`modelNumber`、`serialNumber`、`softwareVersion`、`hardwareVersion`、`firmwareVersion`、`additionalDeviceInfos`、`profiles` 和 `descriptors` 等属性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值