React Native (Android) обнаруживает звук на удаленном URL-адресе видео - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу создать собственный модуль Android, чтобы определить, существуют ли аудиодорожки на видео.Сейчас я использую MediaPlayer, но onPrepared не вызывается.Я что-то пропустил?Родной модуль также правильно связывается.Мой журнал говорит MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No content provider: https://storage.googleapis.com/SPECIAL_FILE.mp4

public class RNSoundDetectionModule extends ReactContextBaseJavaModule {

  private final ReactApplicationContext reactContext;

  public RNSoundDetectionModule(ReactApplicationContext reactContext) {
    super(reactContext);
    this.reactContext = reactContext;
  }
  @ReactMethod
  public void doesLocalVideoHaveAudioTrack(String path, Callback cb) {
    boolean audioTrack =false;

    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
    retriever.setDataSource(path);
    String hasAudioStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO);
    if(hasAudioStr!=null && hasAudioStr.equals("yes")){
     audioTrack=true; }
    else{
    audioTrack=false; }
    try {
      cb.invoke(audioTrack, null);
    } catch (Exception e) {
      cb.invoke(e.toString(), null);
    }
  }

  @ReactMethod
  public void getRemoteAudioTracks(String path, final Callback cb) {
    try {
      MediaPlayer mediaPlayer = new MediaPlayer();
      mediaPlayer.setDataSource(path);
      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){

      @Override
          public void onPrepared(MediaPlayer mp) {
              cb.invoke(mp.getTrackInfo(), null);
          }
      });
      mediaPlayer.prepareAsync();
    } catch (IOException e) {
      cb.invoke(e.toString(), null);
    }
  }
  @Override
  public String getName() {
    return "RNSoundDetection";
  }
}

1 Ответ

0 голосов
/ 27 ноября 2018

Исправлено - смотрите мою библиотеку здесь: https://github.com/evanjmg/react-native-sound-detection

...