当前位置: 首页 > 工具软件 > NAudio > 使用案例 >

NAudio

汤昊
2023-12-01
帮助文件与示例
https://github.com/naudio/NAudio
DEMO文件,源代码
https://markheath.net/category/naudio


waveout与waveoutevent区别;触发事件的方式不同:一个是回调式,一个是事件触发式(推荐使用后者代替老方式)
读取wav文件  WaveFileReader
读取mp3文件  mp3FileReader
读取其它文件 AudioFileReader

写入文件 WaveFileWriter

播放文件
    Dim fr As New WaveFileReader("d:\test.wav")
    Dim out As WaveOut
    out.Init(fr)
    out.Play()


播放音频数据

        Dim Buff(45000) As Byte
        Dim wavStream As New RawSourceWaveStream(Buff, 0, 45000, New WaveFormat(16000, 16, 1))
        out.Init(wavStream)
        out.Play()

数据的转换
Buffer.BlockCopy()



获取语音数据
	Dim fr As New WaveFileReader("d:\test.wav")
	fr.Read(Buff,0,100)
	

录音

	Dim wav As New WaveInEvent

        AddHandler wav.DataAvailable, AddressOf waveIn_DataAvailable
	
  	wav.StartRecording()


	Private Sub waveIn_DataAvailable(sender As Object, e As WaveInEventArgs)

	EndSub



设置缓冲区大小
        wav.BufferMilliseconds = 200  '缓冲区大小= 频率*BufferMilliseconds*字节/1000 ; 如16000*200*2=6400  ;8000*1*20=1600      200 = 6400;100 = 3200
        wav.NumberOfBuffers = 6   '原12 减少缓冲区数量,使用录音不中断
        wav.WaveFormat = New WaveFormat(16000, 16, 1) '格式 16000

’数据结构的转换,byte 到 十六位,32位,24位
WaveBuffer


'绘图





使用

 

 类似资料:

相关阅读

相关文章

相关问答