设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2129|回复: 20
打印 上一主题 下一主题

[已经解决] 如何使音频在选择的某一点开始播放?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3770
在线时间
741 小时
注册时间
2016-6-2
帖子
211

开拓者

跳转到指定楼层
1
发表于 2017-6-29 22:19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 David_Exmachina 于 2017-6-29 22:21 编辑

如题,比方说有一个音频,内容如下:
刚开始播放后听到:“Let the bass kick”
播放1.4秒后听到:“O-oooooooooo AAAAE-A-A-I-A-U-”
播放4.2秒后听到:“JO-oooooooooooo AAE-O-A-A-U-U-A-”

如果我用普通的方法播放这个音频,
那么会从“Let the bass kick”开始播放。
我能不能通过一种手段,
而且不创建一个新的音频
使这个音频从“O-oooooooooo AAAAE-A-A-I-A-U-”开始播放,
或者是“JO-oooooooooooo AAE-O-A-A-U-U-A-”开始播放呢?

脚本好像很难实现这个。
如果脚本不可能实现,有什么能够实现这个的插件吗?

注:例子中的音频其实是音乐“Brain Power”的一部分。

Lv4.逐梦者

梦石
0
星屑
19334
在线时间
3077 小时
注册时间
2013-1-11
帖子
1288
来自 4楼
发表于 2017-6-30 15:01:13 | 只看该作者
本帖最后由 张咚咚 于 2017-6-30 15:06 编辑
David_Exmachina 发表于 2017-6-30 12:18
这个应该插入哪个脚本呢?
另外每次打开这个的时候怎么都报错,说:
找不到文件:Section000:51in'initiali ...


Project1.zip (1.86 MB, 下载次数: 72)

无论播放那个文件,最多只会创建两个临时文件,不必在意。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19334
在线时间
3077 小时
注册时间
2013-1-11
帖子
1288
2
发表于 2017-6-29 23:10:44 | 只看该作者
本帖最后由 张咚咚 于 2017-6-30 00:01 编辑

不创建音频好像没办法
分割音频测试测试mp3格式是没问题的

RUBY 代码复制
  1. #使用方法:fg_bgm(BGM文件名需要后缀名, 开始播放的位置, 播放的长度)
  2. def fg_bgm(filename, start, len)
  3.  
  4. f = open("Audio/BGM/#{filename}", 'rb')
  5. data = f.read()
  6.  
  7. f = open("Audio/BGM/fg___.mp3", 'wb')
  8. f.write(data[start, len])
  9.  
  10. f.close()
  11.  
  12. Audio.bgm_play("Audio/BGM/fg___.mp3", 100, 100)
  13. end

点评

好吧,当场眼瞎,上面原来有写。  发表于 2017-6-30 12:08
突然卡顿,不小心发了两次……orz  发表于 2017-6-30 10:58
这方法好像可以,只要及时删除产生的临时文件就可以了。不过“start”和“len”代表什么?  发表于 2017-6-30 10:57
这方法好像可以,只要及时删除产生的临时文件就可以了。不过“start”和“len”代表什么?  发表于 2017-6-30 10:57

评分

参与人数 1梦石 +1 收起 理由
hys111111 + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3770
在线时间
741 小时
注册时间
2016-6-2
帖子
211

开拓者

3
 楼主| 发表于 2017-6-30 12:18:55 | 只看该作者
这个应该插入哪个脚本呢?
另外每次打开这个的时候怎么都报错,说:
找不到文件:Section000:51in'initialize'Audio/BGM/(文件名)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3770
在线时间
741 小时
注册时间
2016-6-2
帖子
211

开拓者

5
 楼主| 发表于 2017-6-30 17:29:54 | 只看该作者
哇,这个很不错,基本符合我的要求。^▽^
不过如果点开画面,段落播放完了以后会停止循环,
点进画面后才会继续循环,这个怎么破?QWQ
还有start和len的单位是什么?是采样吗?@U@
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19334
在线时间
3077 小时
注册时间
2013-1-11
帖子
1288
6
发表于 2017-6-30 18:12:05 | 只看该作者
本帖最后由 张咚咚 于 2017-6-30 18:13 编辑
David_Exmachina 发表于 2017-6-30 17:29
哇,这个很不错,基本符合我的要求。^▽^
不过如果点开画面,段落播放完了以后会停止循环,
点进画面后才会 ...


什么意思,是循环播放音乐吗。
单位是读取的文件数组

点评

没错,是循环播放音乐。话说音频的读取文件数组是什么?-_-||  发表于 2017-6-30 19:54
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19334
在线时间
3077 小时
注册时间
2013-1-11
帖子
1288
7
发表于 2017-6-30 20:02:45 | 只看该作者
读取一个文件会保存在数组里,判断数组的长度,就是文件的长度。。。
Audio.bgm_play,Audio模块里的bgm_play方法是播放BGM的,会循环,换成me_play就是ME播放方法,只会播放一次。

点评

应该可以在文件名上加上秒数,或者在一个文本txt里面存入,然后根据秒数判断就可以知道长度到底代表多少  发表于 2017-6-30 21:14
这个好像是不确定的。。测试了一下和秒数是没关系的,应该和音质有关系  发表于 2017-6-30 21:12
换一种问法,单位是多少时间?(比如说,1毫秒,1微秒什么的)  发表于 2017-6-30 20:40
也就是说要看比特率吗?比如说随便输入一个单位,播放320kbps的音乐的时间是160kbps的音乐的一半?  发表于 2017-6-30 20:38
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3770
在线时间
741 小时
注册时间
2016-6-2
帖子
211

开拓者

8
 楼主| 发表于 2017-7-1 11:24:31 | 只看该作者
OK,我知道该如何得知一个单位的长度了。(ノ゚∀゚)ノ
那么点开画面后停止循环的问题该如何解决呢?
⊙ω⊙
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19334
在线时间
3077 小时
注册时间
2013-1-11
帖子
1288
9
发表于 2017-7-1 12:35:07 | 只看该作者
David_Exmachina 发表于 2017-7-1 11:24
OK,我知道该如何得知一个单位的长度了。(ノ゚∀゚)ノ
那么点开画面后停止循环的问题该如何解决呢?⊙ω⊙ ...

点开什么画面

点评

不会啊,就算窗口失去焦点还是会循环播放的  发表于 2017-7-1 15:15
点开游戏画面。点到游戏画面之外的区域,然后播放完剪切下来的那一段音乐后会停止循环,直到点进游戏画面。  发表于 2017-7-1 12:45
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3770
在线时间
741 小时
注册时间
2016-6-2
帖子
211

开拓者

10
 楼主| 发表于 2017-7-1 18:50:11 | 只看该作者
本帖最后由 David_Exmachina 于 2017-7-1 18:56 编辑

好的吧我知道原因了,这大概是音乐文件格式的问题。
我试了一下,不只是剪切下来的音乐,所有mp3格式的音乐都会发生这个问题。
总之,问题算是完全解决了,非常感谢你在这个难题上的帮助。O(∩_∩)O

还要感谢你能够连续帮助我那么长时间(我觉得2天已经算是很长了),
一般人要问的话,我觉得只要半天后问题就会解决了。
我还以为我问了太久就会遭到很恶劣的评论呢。

另外,我觉得拿这个脚本做真正的循环音乐会很好。
只是普通的循环就会出现音乐会停止一段时间,会产生很别扭的感觉。
尽管要统一所有音乐文件的码率,很麻烦,但至少这是可行的了。
虽然会产生临时文件,但是只要用脚本及时处理就好了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 20:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表