Project1

标题: 真心求助,我的mv突然所有bgm都有延迟,有时候还会不响 [打印本页]

作者: 1033184484    时间: 2019-1-14 20:39
标题: 真心求助,我的mv突然所有bgm都有延迟,有时候还会不响
具体来说是mv的bgm延迟一秒。
测试一首一首点过去时,总会在点了几首后出现后面几首不响的情况,跟是哪首bgm无关。
在audio文件夹里我都试过很正常,其他电脑试了也正常,就我自己的电脑不正常(哭~)
作者: 白嫩白嫩的    时间: 2019-1-15 20:08
记得1.6.1版本 官方已经解决延迟的bug了

作者: 梦想家大魔王    时间: 2019-1-15 20:29
如果是旧版本MV,官方有说明,删除旧版本里带的音乐,用最新版MV中附带的。
网上很多人说BGM有延迟问题,但我从1.2版本开始入的正,一直用到现在1.6.1版,从来没碰到过这问题。
也许,是我用的音乐太少了?
作者: ji654    时间: 2019-1-15 23:06
在试试 吧 功夫不负有心人
作者: 无名小生    时间: 2019-1-16 11:04
打包后放在手机上有延迟,PC没问题的
作者: 神秘中国人    时间: 2019-1-16 11:32
这个问题,估计是和加载有关。  手机上或者web上,他估计是做了。  BGM是允许异步加载。  加载完后才播放。
但是界面是允许素材和脚本都加载好就显示。  所以你今日一些网络环境不好,机器配置不好的设备上,也许会导致这个情况。

这个问题,综合来说,不解决比较好。因为有些人BGM是几十MB。   如果你这个游戏界面。网络传输个几十MB才能进入。这游戏无法玩。
等于现在你百度酷狗一首歌,都是一边加载一边播放。   
但是RMMV是加载 估计是加载完后在播放。   因为这样子开发者才方便获取到加载文件的属性。例如这个BGM的播放时长等等。
作者: 1033184484    时间: 2019-2-17 23:05
神秘中国人 发表于 2019-1-16 11:32
这个问题,估计是和加载有关。  手机上或者web上,他估计是做了。  BGM是允许异步加载。  加载完后才播放。 ...

我就只是做pc,而且是正版自带的bgm存在延迟。也应该不是电脑配置的问题。
我以前是用盗版的然后才入了正,但我把盗版删了而且用正版重新创建一个工程也存在延迟。
真的不清楚是什么原因,感觉挺糟心的(哭~)
(话说我都没看到右上角的帖子有提醒~-_-||)
作者: garfeng    时间: 2019-2-17 23:32
有一个比较魔鬼的办法:

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

游戏的引擎是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。加入以后会增加游戏安装包的大小。
作者: 1033184484    时间: 2019-2-17 23:35
神秘中国人 发表于 2019-1-16 11:32
这个问题,估计是和加载有关。  手机上或者web上,他估计是做了。  BGM是允许异步加载。  加载完后才播放。 ...

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


作者: tseyik    时间: 2019-2-18 14:39
試試這個Audio Lag Fix 0.82 Beta
MINOR 0.82.rar (10.38 KB, 下载次数: 131)
一些人在RPG製造商中經歷了音頻滯後,特別是更長的BGM文件。
這主要是因為音頻緩衝區不適合超過45秒的剪輯。
作者: 1033184484    时间: 2019-2-18 16:40
garfeng 发表于 2019-2-17 23:32
有一个比较魔鬼的办法:

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

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

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

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

Snipaste_2019-02-18_16-28-23.png

作者: garfeng    时间: 2019-2-18 17:12


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

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

会清空你的存档。

游戏的存档都是存在这个目录
作者: 1033184484    时间: 2019-2-18 20:49
garfeng 发表于 2019-2-18 17:12
抱歉这个办法解决不了问题。

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

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

反正只是自己这台上有延迟,虽然麻烦了点,测试的时候我拷贝到我那十年前的笔记本上测试吧(趴~)
作者: 神秘中国人    时间: 2019-2-19 13:16
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压缩
作者: 神秘中国人    时间: 2019-2-19 13:40
实在认为是代码问题,可以考虑,播放机制重写一下。

  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需要修改。  如果不太会代码,建议放弃
作者: moser1125    时间: 2019-2-20 23:15
貌似最新版mv能解决




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1