42
42
import android .view .Surface ;
43
43
import android .view .SurfaceHolder ;
44
44
45
+ import org .ggml .whispercpp .whispercpp ;
46
+
45
47
import java .io .FileDescriptor ;
46
48
import java .io .FileNotFoundException ;
47
49
import java .io .IOException ;
@@ -179,13 +181,14 @@ public final class FFmpegMediaPlayer extends AbstractMediaPlayer {
179
181
private long mTotalPauseTime ;
180
182
private boolean bIsPaused ;
181
183
private int mDecryptMode = CDEUtils .DECRYPT_SOFT ;
182
- private boolean mDisableAudioTrack = false ; //troubleshooting Huaxia's <<狄仁杰>>
184
+ private boolean mDisableAudioTrack = false ;
183
185
private boolean mDisableVideoTrack = false ;
184
186
private boolean mEnableDumpVideoES = false ;
185
187
private boolean mEnableDumpAudioES = false ;
186
188
private int mDurationDumpES = 10 ; //default dumped duration is 10 seconds
187
189
188
190
private boolean mEnableRecord = false ;
191
+ private boolean mEnableASR = false ;
189
192
190
193
private String mVideoTitle ;
191
194
@@ -218,6 +221,7 @@ public static void loadLibrariesOnce(IjkLibLoader libLoader) {
218
221
CDELog .j (TAG , "load library kantv-play" );
219
222
libLoader .loadLibrary ("kantv-play" );
220
223
CDELog .j (TAG , "after load library kantv-play" );
224
+
221
225
mIsLibLoaded = true ;
222
226
}
223
227
}
@@ -261,6 +265,15 @@ private void initPlayer(IjkLibLoader libLoader) {
261
265
loadLibrariesOnce (libLoader );
262
266
initNativeOnce ();
263
267
268
+ //TODO
269
+ try {
270
+ CDELibraryLoader .load ("whispercpp" );
271
+ CDELog .j (TAG , "cpu core counts:" + whispercpp .get_cpu_core_counts ());
272
+ } catch (Exception e ) {
273
+ CDELog .j (TAG , "failed to initialize whispercpp jni" );
274
+ return ;
275
+ }
276
+
264
277
//should I put it in another better place?
265
278
mBeginTime = System .currentTimeMillis ();
266
279
@@ -856,6 +869,7 @@ public void setEnableRecord(boolean bEnableRecord) {
856
869
_setEnableRecord (mEnableRecord ? 1 : 0 );
857
870
}
858
871
872
+
859
873
//TODO
860
874
@ Override
861
875
public void updateRecordingStatus (boolean bEnableRecord ) {
@@ -871,6 +885,23 @@ public boolean getEnableRecord() {
871
885
return mEnableRecord ;
872
886
}
873
887
888
+ @ Override
889
+ public void setEnableASR (boolean bEnableASR ) {
890
+ mEnableASR = bEnableASR ;
891
+ CDELog .d (TAG , "enable ASR: " + mEnableASR );
892
+ _setEnableASR (mEnableASR ? 1 : 0 );
893
+ }
894
+
895
+ @ Override
896
+ public boolean getEnableASR () {
897
+ int isASRing = _getEnableASR ();
898
+ if (0 == isASRing )
899
+ mEnableASR = false ;
900
+ else
901
+ mEnableASR = true ;
902
+ return mEnableASR ;
903
+ }
904
+
874
905
875
906
@ Override
876
907
public void setDurationDumpES (int durationDumpES ) {
@@ -918,6 +949,10 @@ public String getAudioDecoderName() {
918
949
919
950
public native int _getEnableRecord ();
920
951
952
+ public native void _setEnableASR (int bEnableASR );
953
+
954
+ public native int _getEnableASR ();
955
+
921
956
@ Override
922
957
public native void seekTo (long msec ) throws IllegalStateException ;
923
958
@@ -1296,7 +1331,7 @@ public void handleMessage(Message msg) {
1296
1331
// No real default action so far.
1297
1332
return ;
1298
1333
case MEDIA_TIMED_TEXT :
1299
- CDELog .j (TAG , "subtitle coming" );
1334
+ CDELog .d (TAG , "subtitle coming" );
1300
1335
if (msg .obj == null ) {
1301
1336
player .notifyOnTimedText (null );
1302
1337
} else {
0 commit comments