【问题标题】:Decoding mp3 file解码 mp3 文件
【发布时间】:2013-09-08 05:20:05
【问题描述】:

谁能告诉我如何解码 mp3 文件。
我想像任何媒体播放器一样解码 mp3 文件,但我的工作是解码和读取其特定特征。
我可以为此目的使用 NAudio 吗?
现在我需要的是 mp3 文件的 RAWDATA。

【问题讨论】:

  • 你为什么不能?你得到什么错误?
  • 我猜你应该在提问之前阅读错误信息...
  • 我实际上不知道如何以编程方式进行。
  • 我已经显示了所有位 BitArray bits = new BitArray(FrameByteArray); foreach (bool b in bits) { if (b == true) { Console.Write(" 1"); } else { Console.Write("0");现在我如何使用索引号访问任何位,例如,如果我想访问第 38 位,该怎么做???

标签: c# naudio bitarray


【解决方案1】:

使用这个方法 位[索引] 你可以访问

例如

BitArray bits = new BitArray(FrameByteArray);
Console.Write(bits[59]);

【讨论】:

    【解决方案2】:

    BitArray 类肯定定义了一个索引器,因此使用bits[149] 获取值应该没有任何问题。不过,该值将是bool 而不是int,因此您必须对照true/false 而不是1/0

    【讨论】:

    • 我已经显示了所有位 BitArray bits = new BitArray(FrameByteArray); foreach (bool b in bits) { if (b == true) { Console.Write(" 1"); } else { Console.Write("0");现在我如何使用索引号访问任何位,例如,如果我想访问第 38 位,该怎么做???
    • @YasirAwan - 上面的例子。您可以使用存在于BitArray (msdn.microsoft.com/en-us/library/…) 上的索引器。请记住,它使用从零开始的索引,因此要获得第 38 位,您将使用 bits[37]
    【解决方案3】:
    bool value = bits[149];
    

    记住索引是从零开始的。

    MSDN documentation

    【讨论】:

      【解决方案4】:

      http://msdn.microsoft.com/en-us/library/system.collections.bitarray.get.aspx

      BitArray.Get 方法:获取BitArray中特定位置位的值。

      【讨论】:

      • 我如何访问特定位,例如数组的第 49 位
      • 'bits.Get(49)' 我会说。或者技术上是 48,如果我想是第 49 次。但是上面的答案也是正确的,BitArray 还定义了一个索引器,所以 bits[48] 也可以工作。老实说,我真的不明白问题出在哪里......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多