use IOBufferDuration instead of preferredBufferDuration to set currentBufferDuration