DefaultExtractorsFactory.java 源代码
package com.mbridge.msdk.playercommon.exoplayer2.extractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.amr.AmrExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.flv.FlvExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.mkv.MatroskaExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.mp3.Mp3Extractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.mp4.FragmentedMp4Extractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.mp4.Mp4Extractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.ogg.OggExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.ts.Ac3Extractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.ts.AdtsExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.ts.PsExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.ts.TsExtractor;
import com.mbridge.msdk.playercommon.exoplayer2.extractor.wav.WavExtractor;
import java.lang.reflect.Constructor;
public final class DefaultExtractorsFactory implements ExtractorsFactory {
private static final Constructor<? extends Extractor> FLAC_EXTRACTOR_CONSTRUCTOR;
private int fragmentedMp4Flags;
private int matroskaFlags;
private int mp3Flags;
private int mp4Flags;
private int tsFlags;
private int tsMode = 1;
static {
Constructor<? extends Extractor> constructor;
try {
constructor = Class.forName("com.mbridge.msdk.playercommon.exoplayer2.ext.flac.FlacExtractor").asSubclass(Extractor.class).getConstructor(new Class[0]);
} catch (ClassNotFoundException unused) {
constructor = null;
} catch (Exception e6) {
throw new RuntimeException("Error instantiating FLAC extension", e6);
}
FLAC_EXTRACTOR_CONSTRUCTOR = constructor;
}
@Override
public final synchronized Extractor[] createExtractors() {
int i6;
Extractor[] extractorArr;
Constructor<? extends Extractor> constructor = FLAC_EXTRACTOR_CONSTRUCTOR;
if (constructor == null) {
i6 = 12;
} else {
i6 = 13;
}
extractorArr = new Extractor[i6];
extractorArr[0] = new MatroskaExtractor(this.matroskaFlags);
extractorArr[1] = new FragmentedMp4Extractor(this.fragmentedMp4Flags);
extractorArr[2] = new Mp4Extractor(this.mp4Flags);
extractorArr[3] = new Mp3Extractor(this.mp3Flags);
extractorArr[4] = new AdtsExtractor();
extractorArr[5] = new Ac3Extractor();
extractorArr[6] = new TsExtractor(this.tsMode, this.tsFlags);
extractorArr[7] = new FlvExtractor();
extractorArr[8] = new OggExtractor();
extractorArr[9] = new PsExtractor();
extractorArr[10] = new WavExtractor();
extractorArr[11] = new AmrExtractor();
if (constructor != null) {
try {
extractorArr[12] = constructor.newInstance(new Object[0]);
} catch (Exception e6) {
throw new IllegalStateException("Unexpected error creating FLAC extractor", e6);
}
}
return extractorArr;
}
public final synchronized DefaultExtractorsFactory setFragmentedMp4ExtractorFlags(int i6) {
this.fragmentedMp4Flags = i6;
return this;
}
public final synchronized DefaultExtractorsFactory setMatroskaExtractorFlags(int i6) {
this.matroskaFlags = i6;
return this;
}
public final synchronized DefaultExtractorsFactory setMp3ExtractorFlags(int i6) {
this.mp3Flags = i6;
return this;
}
public final synchronized DefaultExtractorsFactory setMp4ExtractorFlags(int i6) {
this.mp4Flags = i6;
return this;
}
public final synchronized DefaultExtractorsFactory setTsExtractorFlags(int i6) {
this.tsFlags = i6;
return this;
}
public final synchronized DefaultExtractorsFactory setTsExtractorMode(int i6) {
this.tsMode = i6;
return this;
}
}