电容卷插件
控制音量并观察硬件音量按钮的电容插件.
特征
- 🔊 量控: 获取并设置音量关卡.
- 🎚️ 音频流:控制Android上的单个音频流(音乐,戒指,警报等).
- 🔘 音量按钮: 听取硬件音量按钮按下.
- 🤫 取缔:保持音量不变,在观看时隐藏系统音量指示器.
- 👂 改变事件: 聆听音量级别的变化.
- 🤝 兼容性: 与 音频会话, (中文(简体) ), 媒体会议 财务报告和审定财务报表 静态 插件 .
- 📦 可可花和SPM:支持CocoaPods和Swift软件包管理器用于iOS.
- 🔁 最新数据:总是支持最新的Capacitor版本.
缺少一个功能? 刚刚 打开一个问题 我们看看!
使用大小写
音量插件通常用于应用程序需要控制音量或对硬件音量按钮作出反应时,例如:
- 媒体应用程序:从自己的玩家UI读取并调整媒体卷.
- 相机应用程序:在保持音量不变的同时,使用硬件音量按钮作为快门触发.
- 远程控制应用程序:将音量按钮映射到自定义动作上,例如用于控制外部设备.
- 音频指导:当音量过低,无法听到重要音频提示时警告用户.
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 0.x.x (中文(简体) ) | >=8.x.x | 积极支持 |
安装
你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:
npx skills add capawesome-team/skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-volume` plugin in my project.
如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capawesome/capacitor-volume
npx cap sync
此插件仅可用于 机器人 财务报告和审定财务报表 iOS系统。在网络上,所有方法都认为未执行.
配置
此插件不需要配置 .
使用量
以下例子显示如何获取并设定当前音量,观看硬件音量按钮,收听音量按钮按下和音量变化,并删除所有收听者.
获取当前音量
读取当前音量级别为值 0 财务报告和审定财务报表 1。在Android上,您可以选择带有以下内容的音频流(例如环流) stream 选项。 在iOS上,这总是返回媒体的音量:
import { Volume, VolumeStream } from '@capawesome/capacitor-volume';
const getVolume = async () => {
const { volume } = await Volume.getVolume();
return volume;
};
const getRingVolume = async () => {
const { volume } = await Volume.getVolume({ stream: VolumeStream.Ring });
return volume;
};
设定音量
将音量级别设定为值 0 财务报告和审定财务报表 1在Android上,您可以选择带有 stream 选项。 在iOS上,这总是设置媒体量:
import { Volume } from '@capawesome/capacitor-volume';
const setVolume = async () => {
await Volume.setVolume({ volume: 0.5 });
};
注意硬件音量按钮
开始监视硬件音量按钮以接收 volumeButtonPressed 财务报告和审定财务报表 volumeChange 事件。 与 suppressVolumeChange 选项,音量级别保持不变,系统音量指标在监视时被隐藏:
import { Volume } from '@capawesome/capacitor-volume';
const startWatching = async () => {
await Volume.startWatching({ suppressVolumeChange: true });
};
const stopWatching = async () => {
await Volume.stopWatching();
};
const isWatching = async () => {
const { watching } = await Volume.isWatching();
return watching;
};
听音量按钮按下
在按下硬件音量按钮时得到通知 。 活动只在观看时才发布(见上文):
import { Volume } from '@capawesome/capacitor-volume';
const addVolumeButtonPressedListener = async () => {
await Volume.addListener('volumeButtonPressed', event => {
console.log('Volume button pressed:', event.direction);
});
};
音量变化
当音量级别发生变化时得到通知. 活动只在观看时才发布(见上文):
import { Volume } from '@capawesome/capacitor-volume';
const addVolumeChangeListener = async () => {
await Volume.addListener('volumeChange', event => {
console.log('Volume changed:', event.volume);
});
};
删除所有听众
当此插件不再需要时, 移除全部监听器 :
import { Volume } from '@capawesome/capacitor-volume';
const removeAllListeners = async () => {
await Volume.removeAllListeners();
};
API 密码
getVolume(...)isWatching()setVolume(...)startWatching(...)stopWatching()addListener('volumeButtonPressed', ...)addListener('volumeButtonReleased', ...)addListener('volumeChange', ...)removeAllListeners()- 接口
- 类型异名
- 数字
获取Volume (...)
getVolume(options?: GetVolumeOptions | undefined) => Promise<GetVolumeResult>
获取当前音量级别 .
在iOS上,这总是返回媒体的音量.
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
options | GetVolumeOptions |
回返情况: Promise<GetVolumeResult>
自: 0.1.0 (中文(简体) )
正在观察 ()
isWatching() => Promise<IsWatchingResult>
检查硬件音量按钮是否正在被监视 .
仅在Android和iOS上提供.
回返情况: Promise<IsWatchingResult>
自: 0.1.0 (中文(简体) )
设置卷 (...)
setVolume(options: SetVolumeOptions) => Promise<void>
设置音量关.
在iOS上,这总是设置媒体量.
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
options | SetVolumeOptions |
自: 0.1.0 (中文(简体) )
开始监视(...)
startWatching(options?: StartWatchingOptions | undefined) => Promise<void>
开始观看硬件音量按钮.
这个 volumeButtonPressed, (中文(简体) ), volumeButtonReleased 财务报告和审定财务报表 volumeChange
事件只在观看时才被释放.
如果音量按钮已经被监视了,这个呼叫已经
没有效果。 打电话 stopWatching() 首先更改选项.
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
options | StartWatchingOptions |
自: 0.1.0 (中文(简体) )
停止监视( C)
stopWatching() => Promise<void>
停止观看硬件音量按钮.
在 iOS 上,这也恢复了当
观看如果 suppressVolumeChange 选项已启用.
仅在Android和iOS上提供.
自: 0.1.0 (中文(简体) )
添加倾听器( “ opulations Button Pressed ” ,...)
addListener(eventName: 'volumeButtonPressed', listenerFunc: (event: VolumeButtonPressedEvent) => void) => Promise<PluginListenerHandle>
在观看时按下硬件音量按钮时调用 .
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
eventName | 'volumeButtonPressed' |
listenerFunc | (event: VolumeButtonPressedEvent) => void |
回返情况: Promise<PluginListenerHandle>
自: 0.1.0 (中文(简体) )
添加倾听器( “ 批量按钮释放 ” ,...)
addListener(eventName: 'volumeButtonReleased', listenerFunc: (event: VolumeButtonReleasedEvent) => void) => Promise<PluginListenerHandle>
在观看时发布硬件音量按钮时调用 .
只能从Android上找到.
| 参数 | 类型 |
|---|---|
eventName | 'volumeButtonReleased' |
listenerFunc | (event: VolumeButtonReleasedEvent) => void |
回返情况: Promise<PluginListenerHandle>
自: 0.2.0 (中文(简体) )
添加倾听器( “ 量变化 ” ,...)
addListener(eventName: 'volumeChange', listenerFunc: (event: VolumeChangeEvent) => void) => Promise<PluginListenerHandle>
当量级变化时在观看时调用 .
在Android上,这被叫作要改变音乐流.
在iOS上,这需要修改媒体量,并且是
未调用时 suppressVolumeChange 选项已启用.
仅在Android和iOS上提供.
| 参数 | 类型 |
|---|---|
eventName | 'volumeChange' |
listenerFunc | (event: VolumeChangeEvent) => void |
回返情况: Promise<PluginListenerHandle>
自: 0.1.0 (中文(简体) )
删除所有收听器( )
removeAllListeners() => Promise<void>
删除此插件的所有听众 .
自: 0.1.0 (中文(简体) )
接口
获取卷起
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
volume | number | 当前数量水平作为值介于 0 财务报告和审定财务报表 1。 。 。 . | 0.1.0 (中文(简体) ) |
获取Volume 选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
stream | VolumeStream | 音流取出音量为用. 只能从Android上找到. | VolumeStream.Music | 0.1.0 (中文(简体) ) |
正在观看结果
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
watching | boolean | 硬件音量按钮是否正在被监视 . | 0.1.0 (中文(简体) ) |
设置组合选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
stream | VolumeStream | 音流来设出音量. 只能从Android上找到. | VolumeStream.Music | 0.1.0 (中文(简体) ) |
volume | number | 设定为值之间的音量级别 0 财务报告和审定财务报表 1。 。 。 . | 0.1.0 (中文(简体) ) |
开始观察选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
suppressVolumeChange | boolean | 是否在观看时按下硬件音量按钮时保持音量级别不变 。 在Android上,卷关键事件被消耗,这样系统就不会应用卷变化或显示卷面板. 在iOS上,每个按钮按下后立即重置音量级别并隐藏系统音量指示器. 如果音量级别接近最小或最大,则被压入一个值,从中仍然可以检测出两个按钮. 观看停止时会恢复原音量级别. | false | 0.1.0 (中文(简体) ) |
插件听筒
| Prop | 类型 |
|---|---|
remove | () => Promise<void> |
音量按钮预览活动
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
direction | Direction | 按下硬件音量按钮的方向 . | 0.1.0 (中文(简体) ) |
音量按钮释放事件
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
direction | Direction | 发布硬件音量按钮的方向. | 0.2.0 (中文(简体) ) |
变化事件
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
volume | number | 新量级作为值介于 0 财务报告和审定财务报表 1。 。 。 . | 0.1.0 (中文(简体) ) |
类型异名
方向
硬件音量按钮的方向 .
up:音量向上按钮.down:音量下调按钮.
'down' | 'up'
数字
卷轴
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Alarm | 'ALARM' | 用于警报的音频流. | 0.1.0 (中文(简体) ) |
Music | 'MUSIC' | 音乐与媒体回放的音频流. | 0.1.0 (中文(简体) ) |
Notification | 'NOTIFICATION' | 通知的音频流 . | 0.1.0 (中文(简体) ) |
Ring | 'RING' | 电话铃的音频流. | 0.1.0 (中文(简体) ) |
System | 'SYSTEM' | 系统的声音流. | 0.1.0 (中文(简体) ) |
VoiceCall | 'VOICE_CALL' | 电话的音频流. | 0.1.0 (中文(简体) ) |
音量控制
在获取和设定音量时,要铭记以下平台差异:
- 机器人: 音量可以被读取并设定每个音频流(参见:
stream选项)。 如果 Do Not Distrib 活动,改变环的体积,通知或系统流需要 Do Not Distrib 访问. 如果没有这种访问,电话就与DO_NOT_DISTURB_ACCESS_REQUIRED错误代码 。 您可以使用ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS意图,例如: 应用程序启动器 插件 . - iOS系统:没有公共API直接设置系统音量. 因此插件使用隐藏的系统音量视图来改变介质音量,而介质音量是唯一能够被读取并设定的音量. 这个
stream选项被忽略.
音量按钮监视
在观看硬件音量按钮时注意以下平台差异:
- 机器人:音量关键事件被网页视图所截取,因此按钮按键只在应用程序处于前景时被检测出. 与
suppressVolumeChange选项,关键事件被消耗,使音量保持不变,防止系统音量面板出现. - iOS系统:按钮按出自媒体音量的变化,因此按钮按出只在应用程序处于前台时被检测出. 没有
suppressVolumeChange选项,当音量达到最小或最大时,无法检测出按压。 启用选项后,每次按下后会立即重置音量(如果需要的话会从边上滑出),系统音量指示器被隐藏,在观看停止时会恢复原音量. 请注意,在观看时也报告其他来源(如控制中心)的体积变化.
财务问题
此插件与其他类似插件有何不同?
它将体积控制与硬件按钮事件合并在一个统一的API中——一种自然地适合iOS,两者都依赖于相同的基础系统机械. 它在Android上增加了每个流控并处理iOS卷指标抑制,全部通过一个完全打出,积极维护的包来进行,所以一个单一的依赖覆盖了整个卷子故事.
此插件支持哪些平台 ?
插件可以在Android和iOS上找到. 在网络上,所有方法都否认未执行.
为什么 stream 在 iOS 上忽略选项吗 ?
在iOS上,没有公共API直接设置系统音量. 因此插件使用隐藏的系统卷视图来改变介质卷,而介质卷是唯一可以被读取并设置在iOS上的卷. 这个 stream 选项仅在Android上支持,参见 音量控制 详细情况.
为什么 setVolume 与 DO_NOT_DISTURB_ACCESS_REQUIRED 错误代码 ?
在Android上,改变环的体积,通知或系统流,而Do Not Distrib活动时需要Do Not Distrib访问. 您可以使用 ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS 意图,例如使用 App 启动器插件,参见 音量控制 详细情况.
为什么没有检测到音量按钮?
这个 volumeButtonPressed 事件只在观察时被释放,所以请确认您已拨打 startWatching(...) 先说 在两个平台上,仅在应用程序处于前景时检测出按键. 在iOS上,当音量达到最小或最大时,压力也无法被检测出,除非 suppressVolumeChange 选项已启用,参见 音量按钮监视 详细情况.
这有什么 suppressVolumeChange 选项可以吗?
启用此选项后, 在观看时按下硬件音量按钮不会改变音量, 而系统音量指示器会隐藏 。 在Android上,大量的关键事件被消耗. 在iOS上,每个按钮按下后立即重置音量级别,在观看停止时恢复原音量级别.
我能用这个插件吗? 有Ionic、React、Vue或Angular?
是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.
相关插件
通讯
随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .