|
@@ -4,8 +4,12 @@ import android.media.MediaCodec;
|
|
|
import android.media.MediaExtractor;
|
|
import android.media.MediaExtractor;
|
|
|
import android.media.MediaFormat;
|
|
import android.media.MediaFormat;
|
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
|
|
|
+
|
|
|
import cn.i2edu.dubbing_lib.audioUtils.compose.CommonFunction;
|
|
import cn.i2edu.dubbing_lib.audioUtils.compose.CommonFunction;
|
|
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
|
|
|
+import java.io.FileDescriptor;
|
|
|
|
|
+import java.io.FileInputStream;
|
|
|
import java.io.FileOutputStream;
|
|
import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteBuffer;
|
|
@@ -22,13 +26,37 @@ public class AndroidAudioDecoder extends AudioDecoder {
|
|
|
super(encodefile);
|
|
super(encodefile);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private MediaExtractor getMediaExtractor() throws IOException {
|
|
|
|
|
+ MediaExtractor extractor = new MediaExtractor();
|
|
|
|
|
+ File file = new File(mEncodeFile);
|
|
|
|
|
+ FileInputStream fis = null;
|
|
|
|
|
+ try {
|
|
|
|
|
+ fis = new FileInputStream(file);
|
|
|
|
|
+ FileDescriptor fd = fis.getFD();
|
|
|
|
|
+ extractor.setDataSource(fd);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ //Release stuff
|
|
|
|
|
+ extractor.release();
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (fis != null) {
|
|
|
|
|
+ fis.close();
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+// extractor.setDataSource(mEncodeFile);
|
|
|
|
|
+ return extractor;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public RawAudioInfo decodeToFile(String outFile) throws IOException {
|
|
public RawAudioInfo decodeToFile(String outFile) throws IOException {
|
|
|
|
|
|
|
|
long beginTime = System.currentTimeMillis();
|
|
long beginTime = System.currentTimeMillis();
|
|
|
|
|
|
|
|
- MediaExtractor extractor = new MediaExtractor();
|
|
|
|
|
- extractor.setDataSource(mEncodeFile);
|
|
|
|
|
|
|
+ MediaExtractor extractor = getMediaExtractor();
|
|
|
|
|
|
|
|
MediaFormat mediaFormat = null;
|
|
MediaFormat mediaFormat = null;
|
|
|
for (int i = 0; i < extractor.getTrackCount(); i++) {
|
|
for (int i = 0; i < extractor.getTrackCount(); i++) {
|