如何从存储在MemoryStream中的Wav获取标题信息

本文关键字:Wav 获取 标题 信息 中的 MemoryStream 存储 | 更新日期: 2023-09-27 18:21:58

我有一个内存流,其中包含一个wave文件。

wav可以这样播放:

var soundPlayer = new System.Media.SoundPlayer();
soundPlayer.Stream = stream;
soundPlayer.Play();

如何从流中提取比特率、采样率、通道等?

如何从存储在MemoryStream中的Wav获取标题信息

标头大小大约为36个字节。所以你可以创建一个缓冲区并像一样读取它

byte[] headers = byte[36];
memorystream.Position = 0;
memorystream.Read(headers,0,headers.Length);
/** doing your meta data extraction **/
 String mode;
 if(headers[22] ==  1)
    mode = "mono";
 else if(headers[22] == 2)
    mode = "stereo";
 else 
    mode = "unknown";
/*************************************/
memorystream.Position = 0;

检查以下链接的标题信息:

  • http://www-mmsp.ece.mcgill.ca/documents/audioformats/wave/wave.html
  • http://soundfile.sapp.org/doc/WaveFormat/

希望能有所帮助。:-)