简体   繁体   English

在 C# 中播放音频时的白噪声

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM