[英]White noise while playing audio in c#
I have a audio player, made from AudioTrack, that gets and write byte[] packs of audio data (not the entire this at a time, but smaller pieces).我有一个音频播放器,由 AudioTrack 制成,它获取和写入字节 [] 音频数据包(一次不是全部,而是较小的部分)。 The data is constantly playing, but sometimes - random, I get whie noise over that audio, and if I wait a little it will then play normal.
数据一直在播放,但有时 - 随机,我会听到声音的噪音,如果我稍等一下,它就会正常播放。 This happens randomly.
这是随机发生的。 Is it because the buffer may be to small?
是不是因为缓冲区可能太小? I am playing wav files.
我正在播放 wav 文件。 This is my code:
这是我的代码:
public void Read()
{
System.Threading.Tasks.Task.Run(() =>
{
int _bufferSize;
AudioTrack _output;
_bufferSize = AudioTrack.GetMinBufferSize(44100, ChannelOut.Stereo, Android.Media.Encoding.Pcm16bit);
_output = new AudioTrack(Android.Media.Stream.Music, 44100, ChannelOut.Stereo, Android.Media.Encoding.Pcm16bit, _bufferSize, AudioTrackMode.Stream);
_output.Play();
while (mmInStream.CanRead)
{
try
{
byte[] myReadBuffer = new byte[10000];
mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
_output.Write(myReadBuffer, 0, myReadBuffer.Length);
}
catch (System.IO.IOException ex)
{
_output.Stop();
System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
}
}
_output.Stop();
}).ConfigureAwait(false);
}
From AudioTrack article, we can see that it said that It allows streaming of PCM audio buffers to the audio sink for playback , wav is not PCm audio, so it will cause some white noise.从AudioTrack文章中,我们可以看到它说它允许将PCM音频缓冲区流式传输到音频接收器进行播放,wav不是PCm音频,因此会引起一些白噪声。
I find one article about using AudioTrack to play wav file that you can take a look:我找到了一篇关于使用 AudioTrack 播放 wav 文件的文章,你可以看看:
Using AudioTrack in Android to play a WAV file 在Android中使用AudioTrack播放WAV文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.