Skip to content

docs: update audio video #858

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .config/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ export default defineConfig({
text: "能力适配",
items: [
{ text: "WX SDK 平台能力适配", link: "/Design/WX_SDK" },
{ text: "音频视频适配", link: "/Design/AudioAndVideo" },
{ text: "屏幕适配", link: "/Design/fixScreen" },
{ text: "输入法适配", link: "/Design/InputAdaptation" },
{ text: "排行榜与微信关系数据", link: "/Design/OpenData" },
Expand Down
75 changes: 75 additions & 0 deletions Design/AudioAndVideo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
## 音频

目前 UnityAudio 已自动适配微信小游戏,优先建议使用 UnityAudio 来播放音频,也支持 FMOD 插件

## 兼容原理

UnityAudio 原理:

- 长音频播放使用的是[InnerAudio](https://developers.weixin.qq.com/minigame/dev/api/media/audio/InnerAudioContext.html)
- 短音频播放使用的是[WebAudio](https://developers.weixin.qq.com/minigame/dev/api/media/audio/WebAudioContext.html)
- Unity 插件会根据音频文件大小自动适配使用不同的播放方式

FMOD 原理:

- 全部使用[WebAudio](https://developers.weixin.qq.com/minigame/dev/api/media/audio/WebAudioContext.html),因此不推荐背景音乐等大文件使用 FMOD 播放,会占用很大内存

### QA

1. 在 IOS 17.5 以上的版本,小游戏退后台后返回音效无法继续播放了

- 可以尝试更新最新的插件版本,可以避免一些出现的情况,我们正在尝试兼容 IOS 的更新

2. IOS 偶现音频报错 operateAudio:fail jsapi has no permission

- 音频播放时小游戏退后台就有可能出现,没有实际影响,可以忽略

3. 音频播放时游戏卡顿

- 如果同时播放的音频数量过多,是有可能造成游戏延迟卡顿的,建议限制同时播放的音频数量

4. 部分音频文件在安卓无法循环播放

- 已知问题,8.0.51 客户端版本修复

5. 音频在 PC 端无法循环播放完整音频

- 已知问题,更新最新的 Unity 导出插件

6. 推荐使用什么音频格式

- 推荐 mp3 或者 aac 格式,在双端有较好的兼容

## 视频

目前 VideoPlayer 已自动适配微信小游戏

### 支持版本

不同客户端的支持情况不同,以下为最低支持版本:

| 参数 | 版本 |
| ----------- | --------------------------- |
| IOS 高性能+ | 8.0.51 |
| IOS 高性能 | 8.0.41 |
| 安卓 | 8.0.40 |
| PC | 基础库 3.2.1 |
| 开发者工具 | 基础库 3.2.1 + 1.06.2310312 |

### QA

1. 视频在 IOS 无法播放,在其他平台都可以播放?

- 可以尝试把视频播放链接替换我们这个视频链接试试看是否正常,一般这种情况都是服务端设置问题,会报错`Origin weapp://wechat-game-runtime is not allowed by Access-Control-Allow-Origin`,但是没有打印到客户端,只需要配置服务端允许微信跨域访问即可(视频链接:https://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400 )

2. 视频在 IOS 播放有声音没画面?

- 开启了高性能+,先临时关闭高性能+

3. 为什么 IOS 高性能模式只能同时播放一个视频?

- IOS 的播放策略,只能从逻辑上兼容

4. 是否应该使用 VideoPlayer?

- 如果只是单纯使用全屏的视频播放,更推荐使用小游戏 API 视频播放能力。请参考[小游戏开发者文档](https://developers.weixin.qq.com/minigame/dev/api/media/video/wx.createVideo.html)以及示例[Video Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/WX_Video)
2 changes: 1 addition & 1 deletion Design/DataCDN.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
- CDN:当不使用小游戏分包时,需要部署到服务器。

### Assets
如果有用到纹理压缩和微信音频API,导出插件自动生成。将此目录部署到服务器即可
如果有用到纹理压缩,导出插件自动生成。将此目录部署到服务器即可

### StreamingAssets
AssetBundle和Addressables资源目录。
Expand Down
2 changes: 1 addition & 1 deletion Design/DevelopmentQAList.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ if (WXConvertCore.DoExport() == WXConvertCore.WXExportError.SUCCEED) {
- 不行,不提供内嵌webview或跳转的能力
#### 5.小游戏是否支持Unity VideoPlayer

- 支持,但是IOS有限制只能同时播放一个,并且需要注意基础库版本限制,低版本无法播放。如果只是单纯使用全屏的视频播放,更推荐使用小游戏API视频播放能力。请参考[小游戏开发者文档](https://developers.weixin.qq.com/minigame/dev/api/media/video/wx.createVideo.html)以及示例[Video Demo](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/WX_Video)
- 支持,详情查看[音频视频适配](AudioAndVideo.md)
#### 6.小游戏应该使用哪个接口进行限制帧率?

- Application.targetFrameRate
Expand Down
2 changes: 1 addition & 1 deletion Design/HowToDebug.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,4 @@ python3 -m pip install brotli
字体必须打包到项目中,才能正常展示。

5. 音频被切到后台会停止
小游戏被切到后台会停止播放音频需代码中监听 [WX.OnShow](https://developers.weixin.qq.com/minigame/dev/api/base/app/life-cycle/wx.onShow.html)事件和 [WX.OnAudioInterruptionEnd](https://developers.weixin.qq.com/minigame/dev/api/base/app/app-event/wx.onAudioInterruptionEnd.html)事件,在该事件之后重新播放音频
小游戏被切到后台会停止播放音频需代码中监听[WX.OnAudioInterruptionEnd](https://developers.weixin.qq.com/minigame/dev/api/base/app/app-event/wx.onAudioInterruptionEnd.html)事件,在该事件之后重新播放音频
1 change: 0 additions & 1 deletion Design/Transform.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ bundleHashLength -- bundle名中hash长度
preloadFiles -- 预下载文件列表,用;分隔
// SDK功能
UseFriendRelation -- 使用好友关系链
UseAudioApi -- 使用微信音频API
// 调试编译选项
DevelopBuild -- Development Build
AutoProfile -- Autoconnect Profiler
Expand Down
Loading