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

Project1

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

[有事请教] 真心求助,我的mv突然所有bgm都有延迟,有时候还会不响

[复制链接]

Lv1.梦旅人

梦石
0
星屑
76
在线时间
7 小时
注册时间
2018-12-14
帖子
8
跳转到指定楼层
1
发表于 2019-1-14 20:39:41 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
具体来说是mv的bgm延迟一秒。
测试一首一首点过去时,总会在点了几首后出现后面几首不响的情况,跟是哪首bgm无关。
在audio文件夹里我都试过很正常,其他电脑试了也正常,就我自己的电脑不正常(哭~)

Lv2.观梦者

梦石
0
星屑
408
在线时间
11 小时
注册时间
2019-2-13
帖子
21
16
发表于 2019-2-20 23:15:49 | 只看该作者
貌似最新版mv能解决
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
955
在线时间
115 小时
注册时间
2017-8-3
帖子
63
15
发表于 2019-2-19 13:40:00 | 只看该作者
实在认为是代码问题,可以考虑,播放机制重写一下。

  1. AudioManager.createBuffer = function (){
  2.    var ext = this.audioFileExt();
  3.    var url = this._path + folder + '/' + encodeURIComponent(name) + ext;
  4.    var para=document.createElement("audio");
  5.    para.src = url;
  6.    document.body.appendChild(para);
  7.    para.play()
  8. }
复制代码


然后肯定会报错,把后面报错的都注释了。 我只是提供一个思路,肯定有很多BUG需要修改。  如果不太会代码,建议放弃
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
955
在线时间
115 小时
注册时间
2017-8-3
帖子
63
14
发表于 2019-2-19 13:16:27 | 只看该作者
1.我没去看过代码。但是我从一个合理的开发者来说。这是一个单机游戏。所以不考了网速问题,正常来说,这次一个二次开发项目,应该都是加载完在播放(方便二次开发者读取文件属性)。

2.然后我去看了代码,它是请求一个ajax获取文件的buffer。 所以肯定是加载完毕在播放音乐的。
你一个文件几十MB,也不是一瞬间就读完的,举例子。你拷贝一个文件从D盘到C盘是一瞬间的嗎?


  1. Decrypter.decryptHTML5Audio = function(url, bgm, pos) {
  2.     var requestFile = new XMLHttpRequest();
  3.     requestFile.open("GET", url);
  4.     requestFile.responseType = "arraybuffer";
  5.     requestFile.send();

  6.     requestFile.onload = function () {
  7.         if(this.status < Decrypter._xhrOk) {
  8.             var arrayBuffer = Decrypter.decryptArrayBuffer(requestFile.response);
  9.             var url = Decrypter.createBlobUrl(arrayBuffer);
  10.             AudioManager.createDecryptBuffer(url, bgm, pos);
  11.         }
  12.     };
  13. };
复制代码

  1. WebAudio.prototype._load = function(url) {
  2.     if (WebAudio._context) {
  3.         var xhr = new XMLHttpRequest();
  4.         if(Decrypter.hasEncryptedAudio) url = Decrypter.extToEncryptExt(url);
  5.         xhr.open('GET', url);
  6.         xhr.responseType = 'arraybuffer';
  7.         xhr.onload = function() {
  8.             if (xhr.status < 400) {
  9.                 this._onXhrLoad(xhr);
  10.             }
  11.         }.bind(this);
  12.         xhr.onerror = this._loader || function(){this._hasError = true;}.bind(this);
  13.         xhr.send();
  14.     }
  15. };
复制代码



所以还是那句话..........你得目前主机读写速度太慢了。  解决办法,百度搜索一下MP3压缩

点评

但是我总感觉这段代码有点怪怪的,没判断状态是200。 我只是随便看了一下,没真正深入了解。如果有错大哥请纠正一下。  发表于 2019-2-19 13:23
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
7 小时
注册时间
2018-12-14
帖子
8
13
 楼主| 发表于 2019-2-18 20:49:31 | 只看该作者
garfeng 发表于 2019-2-18 17:12
抱歉这个办法解决不了问题。

然后要去掉弹窗按这个步骤做。

谢谢回答,已解决弹窗问题
虽然bgm依然存在延迟,但在此感谢每一个对我的困难提出建议的朋友。

反正只是自己这台上有延迟,虽然麻烦了点,测试的时候我拷贝到我那十年前的笔记本上测试吧(趴~)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
5550
在线时间
2566 小时
注册时间
2012-2-9
帖子
990

开拓者

12
发表于 2019-2-18 17:12:45 | 只看该作者


抱歉这个办法解决不了问题。

然后要去掉弹窗按这个步骤做。

会清空你的存档。

游戏的存档都是存在这个目录
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
7 小时
注册时间
2018-12-14
帖子
8
11
 楼主| 发表于 2019-2-18 16:40:01 | 只看该作者
garfeng 发表于 2019-2-17 23:32
有一个比较魔鬼的办法:

尝试之前记得备份原来的游戏文件。

我用了之后也没用。
然后我就把替换的工程删了,但是当我使用备份的进行游戏测试就会跳出这么一个框
哪怕是重新创建一个新工程也会跳
除了跳出来倒也不影响,可以正常制作和测试。

但我想BGM延迟会不会是是因为我以前使用的盗版软件内容没卸载干净跟正版有些冲突的原因?
因为我在家里另一台电脑上把工程复制过去测试BGM时正常的
但我不太清楚该怎么处理,所以想请教一下大佬是否知道该怎么办

Snipaste_2019-02-18_16-28-23.png (21.89 KB, 下载次数: 26)

Snipaste_2019-02-18_16-28-23.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
23073
在线时间
8648 小时
注册时间
2011-12-31
帖子
3367
10
发表于 2019-2-18 14:39:23 | 只看该作者
試試這個Audio Lag Fix 0.82 Beta
MINOR 0.82.rar (10.38 KB, 下载次数: 131)
一些人在RPG製造商中經歷了音頻滯後,特別是更長的BGM文件。
這主要是因為音頻緩衝區不適合超過45秒的剪輯。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
7 小时
注册时间
2018-12-14
帖子
8
9
 楼主| 发表于 2019-2-17 23:35:34 | 只看该作者
神秘中国人 发表于 2019-1-16 11:32
这个问题,估计是和加载有关。  手机上或者web上,他估计是做了。  BGM是允许异步加载。  加载完后才播放。 ...

或许是我电脑读取的问题?
我在另一台配置更差的电脑上原工程拉过去测试 bgm是正常不延迟,但我这台就会有一两秒延迟
大佬请问你知道是什么原因吗

点评

这个是文件读写快慢有关。 当然内存CPU哪些会有影响,主要还是硬盘本身的读写速度。  发表于 2019-2-19 12:59
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
5550
在线时间
2566 小时
注册时间
2012-2-9
帖子
990

开拓者

8
发表于 2019-2-17 23:32:52 | 只看该作者
有一个比较魔鬼的办法:

尝试之前记得备份原来的游戏文件。

游戏的引擎是nwjs:https://nwjs.io/,你去这个网站下载最新版。

如果访问不了,可以点击下面的连接下载:
https://npm.taobao.org/mirrors/n ... v0.36.1-win-x64.zip

下载完后,解压出来有个nw.exe,把它重命名成Game.exe。

把解压出来的所有文件,复制到游戏目录,也就是覆盖原来的Game.exe及目录中的所有程序文件。

再添加一个文件 package.json:

  1. {
  2.     "name": "游戏名",
  3.     "main": "index.html(游戏的index.html想对于当前目录的路径)",
  4.     "js-flags": "--expose-gc",
  5.     "window": {
  6.         "title": "",
  7.         "toolbar": false,
  8.         "width": 816,
  9.         "height": 624,
  10.         "icon": "icon/icon.png"
  11.     }
  12. }
复制代码


之后,你在做游戏测试时,就不能点击编辑器中的运行按钮了,我记得好像不行。可以进入游戏目录,双击Game.exe。

然后开启调试窗口也不是自带的那个,而是按F12或者Ctrl+Shift+I

这个引擎现在有100M+,游戏的阉割版好像只有40M。加入以后会增加游戏安装包的大小。

点评

游戏引擎是pixi.js。 和NW.js关系不大。 你只能说壳子也许是nw.js做得。  发表于 2019-2-19 13:19
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-7 21:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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