Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BitsPerSample返回0(零)时该怎么办?_C#_Mp3_Naudio - Fatal编程技术网

C# BitsPerSample返回0(零)时该怎么办?

C# BitsPerSample返回0(零)时该怎么办?,c#,mp3,naudio,C#,Mp3,Naudio,我正在使用Mp3FileReader.Mp3WaveFormat.BitsPerSample获取mpeg第3层文件中每个样本使用的位数。现在,当要求输入BitsPerSample时,该mp3文件的编解码器返回零 这可能发生在某些编解码器上 现在,我需要计算mp3文件的BytesPerSample,如果不知道BitsPerSample,我就做不到 所以 如何获取此类文件的BitsPerSample 有没有办法简单地获得BytesPerSample BitsPerSample对于MP3等压缩格式,通

我正在使用
Mp3FileReader.Mp3WaveFormat.BitsPerSample
获取mpeg第3层文件中每个样本使用的位数。现在,当要求输入BitsPerSample时,该mp3文件的编解码器返回零

这可能发生在某些编解码器上

现在,我需要计算mp3文件的BytesPerSample,如果不知道BitsPerSample,我就做不到

所以

  • 如何获取此类文件的BitsPerSample
  • 有没有办法简单地获得BytesPerSample

  • BitsPerSample
    对于MP3等压缩格式,通常返回0。由于MP3对音频进行编码的方式,这真的没有意义。您可以使用
    Mp3FileReader.WaveFormat.BitsPerSample
    检查PCM的每个样本位,Mp3FileReader将对其进行解码。但它始终为16。

    BitsPerSample
    对于MP3等压缩格式,通常返回0。由于MP3对音频进行编码的方式,这真的没有意义。您可以使用
    Mp3FileReader.WaveFormat.BitsPerSample
    检查PCM的每个样本位,Mp3FileReader将对其进行解码。但它始终是16。

    请参阅来源:您可以使用mp3DataLength、bytesPerDecodedFrame、,totalSamplesMP3没有示例位深度。@jdweng如果我将该变量的访问修饰符更改为public,这将起作用。继承该类如何,这样您就不需要公开?@jdweng也可以。请参阅源代码:您可以使用mp3DataLength、bytesPerDecodedFrame、,totalSamplesMP3没有样本位深度。@jdweng如果我将该变量的访问修饰符更改为public,这将起作用。继承该类如何,这样就不需要公开?@jdweng也可以。解码到PCM时,它不必是16。。。你可以将MP3解码到你想要的任何位深度(有不同程度的有用性)。@Brad是的,但这个问题是关于NAudio中的
    Mp3FileReader
    ,它将始终解码到16位PCMAh,这很公平!解码到PCM时不必为16。。。你可以将MP3解码到你想要的任何位深度(有不同程度的有用性)。@Brad是的,但这个问题是关于NAudio中的
    Mp3FileReader
    ,它将始终解码到16位PCMAh,这很公平!