Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
迂街过巷
minigame-unity-webgl-transform
提交
f04297b4
M
minigame-unity-webgl-transform
项目概览
迂街过巷
/
minigame-unity-webgl-transform
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minigame-unity-webgl-transform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f04297b4
编写于
10月 18, 2022
作者:
U
uhu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 优化示例,返回时停止音频播放
上级
4540789f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
31 addition
and
19 deletion
+31
-19
Demo/API/Assets/Scenes/InnerAudio.unity
Demo/API/Assets/Scenes/InnerAudio.unity
+0
-12
Demo/API/Assets/Scripts/AudioManager.cs
Demo/API/Assets/Scripts/AudioManager.cs
+27
-4
Design/AudioOptimization.md
Design/AudioOptimization.md
+4
-3
未找到文件。
Demo/API/Assets/Scenes/InnerAudio.unity
浏览文件 @
f04297b4
...
...
@@ -1199,18 +1199,6 @@ MonoBehaviour:
m_StringArgument
:
m_BoolArgument
:
0
m_CallState
:
2
-
m_Target
:
{
fileID
:
2105647632
}
m_TargetAssemblyTypeName
:
AudioManager, Assembly-CSharp
m_MethodName
:
stopAllAudio
m_Mode
:
1
m_Arguments
:
m_ObjectArgument
:
{
fileID
:
0
}
m_ObjectArgumentAssemblyTypeName
:
UnityEngine.Object, UnityEngine
m_IntArgument
:
0
m_FloatArgument
:
0
m_StringArgument
:
m_BoolArgument
:
0
m_CallState
:
2
---
!u!114
&1439564064
MonoBehaviour
:
m_ObjectHideFlags
:
0
...
...
Demo/API/Assets/Scripts/AudioManager.cs
浏览文件 @
f04297b4
...
...
@@ -9,10 +9,10 @@ public class AudioManager : MonoBehaviour
private
static
int
DEFAULT_AUDIO_COUNT
=
10
;
// 创建音频队列
private
Queue
<
WXInnerAudioContext
>
audioPool
=
new
Queue
<
WXInnerAudioContext
>();
private
static
Queue
<
WXInnerAudioContext
>
audioPool
=
new
Queue
<
WXInnerAudioContext
>();
// 当前场景需要预下载的音频列表
private
string
[]
audioList
=
{
private
st
atic
st
ring
[]
audioList
=
{
"https://res.wx.qq.com/wechatgame/product/webpack/userupload/20220901/211827/CallMeTeenTop.mp3"
,
"https://res.wx.qq.com/wechatgame/product/webpack/userupload/20220815/105451/1.mp3"
,
"https://res.wx.qq.com/wechatgame/product/webpack/userupload/20220901/211846/Night-n.mp3"
,
...
...
@@ -21,7 +21,9 @@ public class AudioManager : MonoBehaviour
};
// 正在播放的音频对象列表
private
List
<
WXInnerAudioContext
>
audioPlayArray
=
new
List
<
WXInnerAudioContext
>();
private
static
List
<
WXInnerAudioContext
>
audioPlayArray
=
new
List
<
WXInnerAudioContext
>();
private
bool
isDestroyed
=
false
;
// 初始化
public
void
Start
()
...
...
@@ -44,6 +46,10 @@ public class AudioManager : MonoBehaviour
private
WXInnerAudioContext
getAudio
()
{
if
(
this
.
isDestroyed
)
{
return
null
;
}
if
(
audioPool
.
Count
==
0
)
{
addAudio
();
...
...
@@ -116,6 +122,10 @@ public class AudioManager : MonoBehaviour
{
var
audioIndex
=
getAudio
();
if
(
audioIndex
==
null
)
{
return
;
}
// 如果没有下文修改needDownload为false的函数,理论上创建的所有音频都是true,可以省去这一条
audioIndex
.
needDownload
=
true
;
...
...
@@ -137,6 +147,10 @@ public class AudioManager : MonoBehaviour
// 但是再次使用该音频时会因为没有下载而需要再次下载,并不推荐这样使用
var
audioPlayRightNow
=
getAudio
();
if
(
audioPlayRightNow
==
null
)
{
return
;
}
// 修改src会触发下载,所以设置needDownload属性要在修改src之前
audioPlayRightNow
.
needDownload
=
false
;
...
...
@@ -152,7 +166,10 @@ public class AudioManager : MonoBehaviour
public
void
stopAllAudio
()
{
audioPlayArray
.
ForEach
(
audio
=>
audio
.
Stop
());
audioPlayArray
.
ForEach
(
audio
=>
{
audio
.
OffCanplay
();
audio
.
Stop
();
});
}
public
void
playRandom
()
...
...
@@ -163,4 +180,10 @@ public class AudioManager : MonoBehaviour
playRightNow
(
index
);
}
private
void
OnDestroy
()
{
this
.
isDestroyed
=
true
;
this
.
stopAllAudio
();
}
}
\ No newline at end of file
Design/AudioOptimization.md
浏览文件 @
f04297b4
...
...
@@ -13,9 +13,6 @@
参考
[
微信开发者文档
](
https://developers.weixin.qq.com/minigame/dev/api/media/audio/InnerAudioContext.html
)
其中src为音频地址,可填本地路径如 xx.wav,运行时会自动和配置的音频地址前缀(默认为DATA_CDN/Assets)做拼接得到最终线上地址。
*
使用方法一:
```
c#
// 使用方法一:创建音频对象可以在初始化是加上needDownload = true,音频会先下载到本地,然后再播放
// 保存本地后,同样的路径不会重复下载,再次使用时无需下载
...
...
@@ -59,6 +56,10 @@ WX.PreDownloadAudios(a, (int res) =>
});
}
});
// 停止音频播放
audio
.
OffCanplay
();
audio
.
Stop
();
```
## 参考示例
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录