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

Project1

 找回密码
 注册会员
搜索

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

查看数: 6620 | 评论数: 15 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-1-14 20:39

正文摘要:

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

回复

moser1125 发表于 2019-2-20 23:15:49
貌似最新版mv能解决
神秘中国人 发表于 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需要修改。  如果不太会代码,建议放弃
神秘中国人 发表于 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
1033184484 发表于 2019-2-18 20:49:31
garfeng 发表于 2019-2-18 17:12
抱歉这个办法解决不了问题。

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

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

反正只是自己这台上有延迟,虽然麻烦了点,测试的时候我拷贝到我那十年前的笔记本上测试吧(趴~)
garfeng 发表于 2019-2-18 17:12:45


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

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

会清空你的存档。

游戏的存档都是存在这个目录
tseyik 发表于 2019-2-18 14:39:23
試試這個Audio Lag Fix 0.82 Beta
MINOR 0.82.rar (10.38 KB, 下载次数: 131)
一些人在RPG製造商中經歷了音頻滯後,特別是更長的BGM文件。
這主要是因為音頻緩衝區不適合超過45秒的剪輯。
1033184484 发表于 2019-2-17 23:35:34
神秘中国人 发表于 2019-1-16 11:32
这个问题,估计是和加载有关。  手机上或者web上,他估计是做了。  BGM是允许异步加载。  加载完后才播放。 ...

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

点评

这个是文件读写快慢有关。 当然内存CPU哪些会有影响,主要还是硬盘本身的读写速度。  发表于 2019-2-19 12:59
garfeng 发表于 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-7-23 09:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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