Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
462e1540
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
462e1540
编写于
6月 08, 2023
作者:
Q
Qin Peng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
Signed-off-by:
N
Qin Peng
<
qinpeng8@huawei.com
>
上级
0905ca3a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
84 deletion
+90
-84
zh-cn/application-dev/media/Readme-CN.md
zh-cn/application-dev/media/Readme-CN.md
+1
-1
zh-cn/application-dev/media/audio-effect-management.md
zh-cn/application-dev/media/audio-effect-management.md
+89
-73
zh-cn/application-dev/reference/apis/js-apis-audio.md
zh-cn/application-dev/reference/apis/js-apis-audio.md
+0
-10
未找到文件。
zh-cn/application-dev/media/Readme-CN.md
浏览文件 @
462e1540
...
...
@@ -11,8 +11,8 @@
-
[
使用OpenSL ES开发音频播放功能
](
using-opensl-es-for-playback.md
)
-
[
使用TonePlayer开发音频播放功能(仅对系统应用开放)
](
using-toneplayer-for-playback.md
)
-
[
多音频播放的并发策略
](
audio-playback-concurrency.md
)
-
[
播放音效管理
](
audio-effect-management.md
)
-
[
播放音量管理
](
volume-management.md
)
-
[
音效管理
](
audio-effect-management.md
)
-
[
音频播放流管理
](
audio-playback-stream-management.md
)
-
[
音频输出设备管理
](
audio-output-device-management.md
)
-
[
分布式音频播放(仅对系统应用开放)
](
distributed-audio-playback.md
)
...
...
zh-cn/application-dev/media/audio-effect-management.md
浏览文件 @
462e1540
# 播放音效管理
播放音效的管理主要包括查询和设置当前音频播放流的音效模式,音效模式包括EFFECT_NONE关闭音效模式和EFFECT_DEFAULT默认音效模式。默认音效模式会根据创建音频流的ContentType和UsageType自动加载对应场景的音效。
## 获取音效管理接口
管理播放音效的接口是getAudioEffectMode()查询当前音频播放流的音效模式和setAudioEffectMode(mode: AudioEffectMode)设置当前音频播放流的音效模式,在使用之前,需要使用createAudioRenderer(options: AudioRendererOptions)先创建音频播放流AudioRenderer实例。
```
ts
import
audio
from
'
@ohos.multimedia.audio
'
;
```
1.
配置音频渲染参数并创建AudioRenderer实例,音频渲染参数的详细信息可以查看
[
AudioRendererOptions
](
../reference/apis/js-apis-audio.md#audiorendereroptions8
)
,创建AudioRenderer实例时会默认挂在EFFECT_DEFAULT模式音效。
```
ts
let
audioStreamInfo
=
{
samplingRate
:
audio
.
AudioSamplingRate
.
SAMPLE_RATE_44100
,
channels
:
audio
.
AudioChannel
.
CHANNEL_1
,
sampleFormat
:
audio
.
AudioSampleFormat
.
SAMPLE_FORMAT_S16LE
,
encodingType
:
audio
.
AudioEncodingType
.
ENCODING_TYPE_RAW
};
let
audioRendererInfo
=
{
content
:
audio
.
ContentType
.
CONTENT_TYPE_SPEECH
,
usage
:
audio
.
StreamUsage
.
STREAM_USAGE_VOICE_COMMUNICATION
,
rendererFlags
:
0
};
let
audioRendererOptions
=
{
streamInfo
:
audioStreamInfo
,
rendererInfo
:
audioRendererInfo
};
audio
.
createAudioRenderer
(
audioRendererOptions
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
error
(
`Invoke createAudioRenderer failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Invoke createAudioRenderer succeeded.
'
);
let
audioRenderer
=
data
;
}
});
```
# 音效管理
音效管理主要包括播放实例音效管理和静态音效管理,播放实例音效管理主要包括查询和设置当前音频播放流的音效模式,静态音效管理支持查询StreamUsage对应场景支持的音效模式。
## 播放实例音效管理
主要包括查询和设置当前音频播放流的音效模式,音效模式包括EFFECT_NONE关闭音效模式和EFFECT_DEFAULT默认音效模式。默认音效模式会根据创建音频流的StreamUsage自动加载对应场景的音效。
### 获取播放实例
管理播放实例音效的接口是getAudioEffectMode()查询当前音频播放流的音效模式和setAudioEffectMode(mode: AudioEffectMode)设置当前音频播放流的音效模式,在使用之前,需要使用createAudioRenderer(options: AudioRendererOptions)先创建音频播放流AudioRenderer实例。
1.
步骤一:导入音频接口。
```
ts
import
audio
from
'
@ohos.multimedia.audio
'
;
```
2.
步骤二:配置音频渲染参数并创建AudioRenderer实例,音频渲染参数的详细信息可以查看
[
AudioRendererOptions
](
../reference/apis/js-apis-audio.md#audiorendereroptions8
)
,创建AudioRenderer实例时会默认挂载EFFECT_DEFAULT模式音效。
```
ts
let
audioStreamInfo
=
{
samplingRate
:
audio
.
AudioSamplingRate
.
SAMPLE_RATE_44100
,
channels
:
audio
.
AudioChannel
.
CHANNEL_1
,
sampleFormat
:
audio
.
AudioSampleFormat
.
SAMPLE_FORMAT_S16LE
,
encodingType
:
audio
.
AudioEncodingType
.
ENCODING_TYPE_RAW
};
let
audioRendererInfo
=
{
content
:
audio
.
ContentType
.
CONTENT_TYPE_SPEECH
,
usage
:
audio
.
StreamUsage
.
STREAM_USAGE_VOICE_COMMUNICATION
,
rendererFlags
:
0
};
let
audioRendererOptions
=
{
streamInfo
:
audioStreamInfo
,
rendererInfo
:
audioRendererInfo
};
audio
.
createAudioRenderer
(
audioRendererOptions
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
error
(
`Invoke createAudioRenderer failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Invoke createAudioRenderer succeeded.
'
);
let
audioRenderer
=
data
;
}
});
```
### 查询当前播放实例的音效模式
```
ts
audioRenderer
.
getAudioEffectMode
((
err
,
effectmode
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to get params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
`getAudioEffectMode:
${
effectmode
}
`
);
}
});
```
```
ts
audioRenderer
.
getAudioEffectMode
((
err
,
effectmode
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to get params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
`getAudioEffectMode:
${
effectmode
}
`
);
}
});
```
### 设置当前播放实例的音效模式
关闭系统音效:
```
ts
audioRenderer
.
setAudioEffectMode
(
audio
.
AudioEffectMode
.
EFFECT_NONE
,
(
err
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to set params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Callback invoked to indicate a successful audio effect mode setting.
'
);
}
});
```
```
ts
audioRenderer
.
setAudioEffectMode
(
audio
.
AudioEffectMode
.
EFFECT_NONE
,
(
err
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to set params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Callback invoked to indicate a successful audio effect mode setting.
'
);
}
});
```
开启系统音效默认模式:
```
ts
audioRenderer
.
setAudioEffectMode
(
audio
.
AudioEffectMode
.
EFFECT_DEFAULT
,
(
err
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to set params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Callback invoked to indicate a successful audio effect mode setting.
'
);
}
});
```
```
ts
audioRenderer
.
setAudioEffectMode
(
audio
.
AudioEffectMode
.
EFFECT_DEFAULT
,
(
err
)
=>
{
if
(
err
)
{
console
.
error
(
`Failed to set params, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
else
{
console
.
info
(
'
Callback invoked to indicate a successful audio effect mode setting.
'
);
}
});
```
## 静态音效管理
主要包括XXX。
### 获取XXX接口
管理播放实例音效的接口XXX。
### 查询当前XXX音效模式
zh-cn/application-dev/reference/apis/js-apis-audio.md
浏览文件 @
462e1540
...
...
@@ -550,16 +550,6 @@ async function createTonePlayerBefore(){
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 |
| STREAM_USAGE_ACCESSIBILITY
<sup>
10+
</sup>
| 8 | 无障碍。 |
| STREAM_USAGE_SYSTEM
<sup>
10+
</sup>
| 9 | 系统音(如屏幕锁定或按键音)。
<br/>
此接口为系统接口。 |
## AudioEffectMode
枚举,音效模式。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
| 名称 | 值 | 说明 |
| ------------------------------------------| ------ | ---------- |
| EFFECT_NONE | 0 | 直通音效。 |
| EFFECT_DEFAULT | 1 | 默认音效。 |
## InterruptRequestType<sup>9+</sup>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录