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. // 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 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 bufferSize := 8192
if web.IsAndroidChrome() { if web.IsBrowser() {
bufferSize = 12000 bufferSize = 12800
} }
p, err := oto.NewPlayer(c.sampleRate, channelNum, bytesPerSample, bufferSize) p, err := oto.NewPlayer(c.sampleRate, channelNum, bytesPerSample, bufferSize)
if err != nil { if err != nil {