jmp123.decoder
类 Layer3

java.lang.Object
  继承者 jmp123.decoder.AbstractLayer
      继承者 jmp123.decoder.Layer3

public final class Layer3
extends AbstractLayer

解码Layer Ⅲ。

版本:
0.400

构造方法摘要
Layer3(Header h, IAudio audio)
          创建一个 Layer Ⅲ 帧解码器,默认启用cpu多核心解码优化。
Layer3(Header h, IAudio audio, boolean coresEnabled)
          创建一个 Layer Ⅲ 帧解码器。
 
方法摘要
 void close(boolean interrupted)
          结束音乐数据解码,并将PCM缓冲区指针复位。
 int decodeAudioData(byte[] b, int off)
          解码1帧Layer Ⅲ除帧头外的音乐数据。
protected  void initialize()
          初始化。
 
从类 jmp123.decoder.AbstractLayer 继承的方法
isEndOfBuffer, outputPCM, startAudio, started, synthesisSubBand
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Layer3

public Layer3(Header h,
              IAudio audio)
创建一个 Layer Ⅲ 帧解码器,默认启用cpu多核心解码优化。

参数:
h - 已经解码帧头信息的帧头对象。
audio - 音频输出对象。
另请参见:
Layer3(Header, IAudio, boolean)

Layer3

public Layer3(Header h,
              IAudio audio,
              boolean coresEnabled)
创建一个 Layer Ⅲ 帧解码器。
如果本程序运行在多核心CPU硬件平台上,建议启用多核心CPU解码,这样能够大幅度提高解码速度。
如果本程序运行在单核心CPU硬件平台上,建议禁用多核心CPU解码,否则会使解码速度略有下降。

如果用 Layer3(Header, IAudio) 创建Layer3对象,缺省情况下启用了cpu多核心优化。

参数:
h - 已经解码帧头信息的帧头对象。
audio - 音频输出对象。
coresEnabled - 若为true启用多核心CPU解码优化,若为false禁用多核心CPU解码优化。
方法详细信息

initialize

protected void initialize()
从类 AbstractLayer 复制的描述
初始化。

本方法会被解码器在执行解码循环前调用,若子类需要完成某些特定的初始化,重载本方法。

覆盖:
AbstractLayer 中的 initialize

decodeAudioData

public int decodeAudioData(byte[] b,
                           int off)
解码1帧Layer Ⅲ除帧头外的音乐数据。

指定者:
AbstractLayer 中的 decodeAudioData
参数:
b - 源数据缓冲区。
off - 源数据缓冲区的偏移量。
返回:
源数据缓冲区新的偏移量,用于计算解码下一帧数据的开始位置在源数据缓冲区的偏移量。

close

public void close(boolean interrupted)
从类 AbstractLayer 复制的描述
结束音乐数据解码,并将PCM缓冲区指针复位。如果因为音频输出已经停止而调用 AbstractLayer.outputPCM() 被阻塞,阻塞将被清除。

覆盖:
AbstractLayer 中的 close
参数:
interrupted - 是否需要以立即方式关闭。若为 false,等待音频输出缓冲区的全部内容刷向音频输出对象后返回;若为 true 以立即方式返回。