lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 13644|回复: 8

有什么办法可以让背景音乐加速播放么?

[复制链接]

3

主题

1

好友

65

积分

士兵

Rank: 1

发表于 2017-7-5 10:48:43 |显示全部楼层
本帖最后由 aaron 于 2017-7-5 11:05 编辑

RT
背景:游戏人物拿到特效功能后加速奔跑,想让背景音乐一起加速。

可否让 LSound  对象加速播放。
微信截图_20170705110519.png

查阅资料发现这个方法可以,lufylegend可否支持下,如何在lufylegend中使用这个方法?
http://www.jb51.net/w3school/html5/av_prop_playbackrate.htm
回复

使用道具 举报

37

主题

8

好友

9305

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2017-7-5 11:15:42 |显示全部楼层
LSound有个隐藏属性data
比如sound是一个LSound对象,那你可以通过sound.data获取Audio对象
当然,如果支持WebAudio的时候,sound.data就是一个webkitAudioContext对象或者AudioContext对象
具体你要怎么操作,就是自己控制了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

1

好友

65

积分

士兵

Rank: 1

发表于 2017-7-5 14:19:45 |显示全部楼层
本帖最后由 aaron 于 2017-7-5 14:23 编辑
lufy 发表于 2017-7-5 11:15
LSound有个隐藏属性data
比如sound是一个LSound对象,那你可以通过sound.data获取Audio对象
当然,如果支持 ...

微信截图_20170705141800.png

打印出来时undefined
查阅资料发现不能直接改变 AudioContext 对象的playbackrate来调整音频速度?

[object HTMLVideoElement]是可以直接改变playbackrate来进行速度调整的

有什么解决方案或者思路么?
回复

使用道具 举报

37

主题

8

好友

9305

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2017-7-6 09:41:48 |显示全部楼层
aaron 发表于 2017-7-5 14:19
打印出来时undefined
查阅资料发现不能直接改变 AudioContext 对象的playbackrate来调整音频速度?

WebAudio的画,应该是用AudioBufferSourceNode.playbackRate吧?具体怎么用你查一下吧
引擎也只是封装一下,如果对原对象做什么操作的话,需要自己扩展
或者,你直接关闭WebAudio也行,但是多声道就用不了了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

1

好友

65

积分

士兵

Rank: 1

发表于 2017-7-6 09:47:00 |显示全部楼层
lufy 发表于 2017-7-6 09:41
WebAudio的画,应该是用AudioBufferSourceNode.playbackRate吧?具体怎么用你查一下吧
引擎也只是封装一下 ...

  背景音乐没走lufylegend的LSOUND对象,直接用原生JS实现进行操作的

https://developer.mozilla.org/en ... dioBufferSourceNode
参考这里的
回复

使用道具 举报

37

主题

8

好友

9305

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2017-7-6 10:05:36 |显示全部楼层
aaron 发表于 2017-7-6 09:47
背景音乐没走lufylegend的LSOUND对象,直接用原生JS实现进行操作的

https://developer.mozi ...

引擎中的处理this.bufferSource = this.data.createBufferSource();
也就是说在支持WebAudio的时候,LSound的bufferSource属性就是AudioBufferSourceNode了
不过用原生的也一样,解决了问题就好
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

1

好友

65

积分

士兵

Rank: 1

发表于 2017-7-6 10:50:39 |显示全部楼层
本帖最后由 aaron 于 2017-7-6 10:57 编辑
lufy 发表于 2017-7-6 10:05
引擎中的处理this.bufferSource = this.data.createBufferSource();
也就是说在支持WebAudio的时候,LSou ...

这个我有尝试过,不过打印出来的AudioBufferSourceNode 对象的buffer属性为null
微信截图_20170706104947.png
微信截图_20170706105107.png


下面是用原生JS实现的AudioBufferSourceNode 对象的buffer属性不为null
ccc.png
aaa.png
ttt.png
回复

使用道具 举报

37

主题

8

好友

9305

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2017-7-6 11:35:48 |显示全部楼层
aaron 发表于 2017-7-6 10:50
这个我有尝试过,不过打印出来的AudioBufferSourceNode 对象的buffer属性为null

是这样的,
引擎中AudioBufferSourceNode的buffer是在play播放的时候才设置的
代码在这里
https://github.com/lufylegend/lu ... bAudio.js#L365-L366
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

1

好友

65

积分

士兵

Rank: 1

发表于 2017-7-6 14:27:25 |显示全部楼层
lufy 发表于 2017-7-6 11:35
是这样的,
引擎中AudioBufferSourceNode的buffer是在play播放的时候才设置的
代码在这里

可以了,多谢指点,看来得多看看源码,学习下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-3-29 22:23 , Processed in 0.056791 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部