gpt4 book ai didi

javascript - Chrome MP3 和 OGG 中的 RTS 游戏 HTML5 音频断断续续

转载 作者:行者123 更新时间:2023-11-28 10:59:26 24 4
gpt4 key购买 nike

我们正在用 HTML5/JavaScript 编写一个 Canvas 演示实时策略 (RTS) 游戏,并且一切正常。然而,在 Chrome(最新版本)中,声音不断断断续续,最终放弃。该代码在最新的 Firefox、IE9 和 Safari 中运行得很好(尽管在 iOS4 iPhone/iPad 上根本没有声音,但显然这是 Apple 的商业决定)。您可以在下面的链接中亲自查看,只是一次听到多个声音就会导致问题。

http://www.enterprisewarfare.com/Play.aspx

简化的声音播放代码如下,注意每个声音存在4次(AUDIO_CHANELS_PER_FILE)以模拟多个 channel 。调整此数字不会导致声音提前或推迟丢失,因此与到达阵列末尾或再次播放相同的音频对象无关。我们已经尝试了 OGG 和 MP3 文件格式,并且在 IE9 (MP3) 和 Firefox (OGG) 中一切正常,没有问题。我们也尝试过将文件返回到开头,但没有成功。

    this.PlaySound = function(sId)
{

var iSoundMapIndex;
var asoundChannels;

if(sId == null || sId.length == 0) return;

// Grab sound channels array
iSoundMapIndex = this.SoundMap[sId];
asoundChannels = this.Sounds[iSoundMapIndex];
if(asoundChannels == null)
{
this.World.AddMessage("Unable to find sound \"" + sId + "\".");
return;
}

// play the next in sequence
asoundChannels[this.SoundChannel[iSoundMapIndex]].volume = 1;
asoundChannels[this.SoundChannel[iSoundMapIndex]].play();
this.SoundChannel[iSoundMapIndex]++;
if(this.SoundChannel[iSoundMapIndex] == this.AUDIO_CHANNELS_PER_FILE) this.SoundChannel[iSoundMapIndex] = 0;

}

最佳答案

这似乎是 chrome 和 chromium 的问题。我建议仔细查看错误报告和开发人员的答案,或者只是等待问题得到解决并同时忽略问题。

遗憾的是,没有人比我在 javascript 方面更有经验,就解决方法提出任何建议。我已经对这个问题投了赞成票,希望您能找到一些帮助。

关于javascript - Chrome MP3 和 OGG 中的 RTS 游戏 HTML5 音频断断续续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com