模板版本: v0.0.1
just_audio
本项目基于 just_audio 开发。
1. 安装与使用
1.1 安装方式
进入到工程目录并在 pubspec.yaml 中添加以下依赖:
pubspec.yaml
...
dependencies:
just_audio_ohos:
git:
url: https://gitcode.com/openharmony-sig/fluttertpc_just_audio
path: just_audio/ohos
...
执行命令
flutter pub get
1.2 使用案例
使用案例详见 just_audio/ohos/example
2. 约束与限制
2.1 兼容性
在以下版本中已测试通过
- Flutter: 3.27.5-ohos-0.0.1; SDK: 5.0.0(12); IDE: DevEco Studio: 5.1.0.828; ROM: 5.1.0.130 SP8;
3. API
"ohos Support"列为 yes 表示 ohos 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
| Name | Description | Type | Input | Output | ohos Support |
|---|---|---|---|---|---|
| init | 创建一个新的平台播放器并返回一个嵌套的平台接口用于与该播放器进行通信 | function | InitRequest request | Future<AudioPlayerPlatform> |
yes |
| disposePlayer | 处理平台播放器 | function | DisposePlayerRequest request | Future<DisposePlayerResponse> |
yes |
| disposeAllPlayers | 处理所有平台播放器 | function | DisposeAllPlayersRequest request | Future<DisposeAllPlayersResponse> |
yes |
| load | 加载音频源 | function | LoadRequest request | Future<LoadResponse> |
yes |
| play | 在当前索引和位置播放当前音频源 | function | PlayRequest request | Future<PlayResponse> |
yes |
| pause | 暂停播放 | function | PauseRequest request | Future<PauseResponse> |
yes |
| setVolume | 音量变化 | function | SetVolumeRequest request | Future<SetVolumeResponse> |
yes |
| setSpeed | 更改播放速度 | function | SetSpeedRequest request | Future<SetSpeedResponse> |
yes |
| setPitch | 音调变化 | function | SetPitchRequest request | Future<SetPitchResponse> |
yes |
| setSkipSilence | 设置是否跳过静默 | function | / | Future<SetSkipSilenceResponse> |
yes |
| setLoopMode | 设置循环播放模式 | function | SetLoopModeRequest request | Future<SetLoopModeResponse> |
no |
| setShuffleMode | 设置随机播放模式 | function | SetShuffleModeRequest request | Future<SetShuffleModeResponse> |
no |
| setShuffleOrder | 设置随机播放顺序 | function | SetShuffleOrderRequest request | Future<SetShuffleOrderResponse> |
no |
| setAutomaticallyWaitsToMinimizeStalling | 在 iOS 和 macOS 上,设置 automaticallyWaitsToMinimizeStalling 选项,在其他平台上不执行任何操作 | function | SetAutomaticallyWaitsToMinimizeStallingRequest request | Future<SetAutomaticallyWaitsToMinimizeStallingResponse> |
no |
| setCanUseNetworkResourcesForLiveStreamingWhilePaused | 在 iOS 和 macOS 上,设置 canUseNetworkResourcesForLiveStreamingWhilePaused 选项,在其他平台上不执行任何操作 | function | SetCanUseNetworkResourcesForLiveStreamingWhilePausedRequest request | Future<SetCanUseNetworkResourcesForLiveStreamingWhilePausedResponse> |
no |
| setPreferredPeakBitRate | 在 iOS 和 macOS 上设置 preferredPeakBitRate 选项,在其他平台上不执行任何操作 | function | SetPreferredPeakBitRateRequest request | Future<SetPreferredPeakBitRateResponse> |
no |
| setAllowsExternalPlayback | 在 iOS 和 macOS 上,设置 letsExternalPlayback 选项,在其他平台上不执行任何操作。 | function | SetAllowsExternalPlaybackRequest request | Future<SetAllowsExternalPlaybackResponse> |
no |
| seek | 寻找给定的索引和位置 | function | SeekRequest request | Future<SeekResponse> |
yes |
| setAndroidAudioAttributes | 在 Android 上设置音频属性,在其他平台上不执行任何操作 | function | SetAndroidAudioAttributesRequest request | Future<SetAndroidAudioAttributesResponse> |
no |
| dispose | 由于 [JustAudioPlatform.disposePlayer] 未实现,此方法仍将被调用 | function | DisposeRequest request | Future<DisposeResponse> |
no |
| concatenatingInsertAll | 将音频源插入给定的连接音频源 | function | ConcatenatingInsertAllRequest request | Future<ConcatenatingInsertAllResponse> |
yes |
| concatenatingRemoveRange | 从给定的连接音频源中删除音频源 | function | ConcatenatingRemoveRangeRequest request | Future<ConcatenatingRemoveRangeResponse> |
yes |
| concatenatingMove | 在串联音频源内移动音频源 | function | ConcatenatingMoveRequest request | Future<ConcatenatingMoveResponse> |
yes |
| audioEffectSetEnabled | 更改音频效果的状态 | function | AudioEffectSetEnabledRequest request | Future<AudioEffectSetEnabledResponse> |
no |
| androidLoudnessEnhancerSetTargetGain | 设置 Android 响度增强器的目标增益 | function | AndroidLoudnessEnhancerSetTargetGainRequest request | Future<AndroidLoudnessEnhancerSetTargetGainResponse> |
no |
| androidEqualizerGetParameters | 获取 Android 均衡器参数 | function | AndroidEqualizerGetParametersRequest request | Future<AndroidEqualizerGetParametersResponse> |
no |
| androidEqualizerBandSetGain | 设置 Android 均衡器频段的增益 | function | AndroidEqualizerBandSetGainRequest request | Future<AndroidEqualizerBandSetGainResponse> |
no |
4. 属性
"ohos Support"列为 yes 表示 ohos 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
AudioPlayer
| Name | Description | Type | Input | Ouput | ohos Support |
|---|---|---|---|---|---|
| userAgent | 在所有 HTTP 请求上设置的用户代理 | String? | / | / | no |
| handleInterruptions | 是否手动处理音频中断 | bool | / | / | no |
| androidApplyAudioAttributes | 控制是否将 AudioAttributes 应用于音频播放器 | bool | / | / | no |
| handleAudioSessionActivation | just_audio 是否在播放音频时自动激活音频会话 | bool | / | / | no |
| audioLoadConfiguration | 默认音频加载和缓冲行为 | AudioLoadConfiguration? | / | / | no |
| audioPipeline | 用于配置音频处理管道 | AudioPipeline? | / | / | no |
| androidOffloadSchedulingEnabled | 启用 Android 音频离线调度 | bool | / | / | no |
| useProxyForRequestHeaders | 允许支持的平台直接发送请求标头,而无需使用代理 | bool | / | / | no |
5. 遗留问题
- ohos 端无音频裁剪能力: issue#21
- ohos 端无音频合成能力: issue#21
- ohos 端无网络音频或取元数据能力: issue#21
- ohos 端无设置音调能力: issue#21
- ohos 端无均衡器设置: issue#21
- ohos 端无音效增强能力: issue#21
6. 其他
7. 开源协议
本项目基于 The MIT License (MIT) ,请自由地享受和参与开源。