audio: Bug fix: appropriate buffer size on browsers

This commit is contained in:
Hajime Hoshi 2017-12-25 01:54:55 +09:00
parent 60eef4618d
commit 623caad3ec

View File

@ -232,10 +232,11 @@ func (c *Context) loop() {
// This is a heuristic decision of audio buffer size.
// On most desktops and mobiles, 4096 [bytes] is enough but there are some known environment that is too short (e.g. Windows on Parallels).
// On browsers, 8192 [bytes] should work with any sample rate except for Android Chrome.
// On browsers, samples for 12800 [bytes] should work with any sample rate.
// This is misterious but e.g. 8192 [bytes], 12000 [bytes] or 16384 [bytes] doesn't work on Chrome well...
bufferSize := 8192
if web.IsAndroidChrome() {
bufferSize = 12000
if web.IsBrowser() {
bufferSize = 12800
}
p, err := oto.NewPlayer(c.sampleRate, channelNum, bytesPerSample, bufferSize)
if err != nil {