audio: Adjust buffer size to reduce noise

This commit is contained in:
Hajime Hoshi 2016-03-11 13:03:45 +09:00
parent f2173f8f75
commit 77b62615b2

View File

@ -75,11 +75,13 @@ func max64(a, b int64) int64 {
}
func (p *player) proceed() error {
const bufferSize = 2048
const channelNum = 2
const bytesPerSample = channelNum * 16 / 8
bufferSize := p.sampleRate * bytesPerSample / 60
c := int64(p.context.Get("currentTime").Float() * float64(p.sampleRate))
// Buffer size is relatively big and it is needed to check that c.positionInSample doesn't
// proceed too far away (#180).
if c+bufferSize < p.positionInSamples {
if c+int64(bufferSize) < p.positionInSamples {
return nil
}
if p.positionInSamples < c {
@ -88,8 +90,6 @@ func (p *player) proceed() error {
b := make([]byte, bufferSize)
n, err := p.src.Read(b)
if 0 < n {
const channelNum = 2
const bytesPerSample = channelNum * 16 / 8
buf := p.context.Call("createBuffer", channelNum, n/bytesPerSample, p.sampleRate)
l := buf.Call("getChannelData", 0)
r := buf.Call("getChannelData", 1)