Как я могу адаптировать URL хранилища Firebase для Exoplayer? - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь передавать потоковое аудио из Firebase Storage и использую Exoplayer для воспроизведения аудио. Но, насколько я понимаю, Exoplayer не поддерживает хранилище downloadUrls, и я получаю исключение.

Вопрос:

Могу ли я адаптировать URL для Exoplayer? Есть ли способ сделать это?

Пример URL: https://firebasestorage.googleapis.com/v0/b/........appspot.com/o/........%2Falways.mp3?alt=media&token=23881b5b-81af-48d1-80cb-4adb8672cc6d

Код:

 FirebaseStorage storage = FirebaseStorage.getInstance();
        StorageReference storageRef = storage.getReference();
        StorageReference kelimeler = storageRef.child("filesPath");


 player = ExoPlayerFactory.newSimpleInstance(getContext());
 PlayerView playerView = view.findViewById(R.id.player_view);
 playerView.setPlayer(player);

 DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getContext(),
                Util.getUserAgent(getContext(),  "appName"));



kelimeler.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
      @Override
      public void onSuccess(Uri uri) {

      MediaSource mediaSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);

      player.prepare(mediaSource);
      player.setPlayWhenReady(true);
            }
        });

Исключение:

com.google.android.exoplayer2.source.UnrecognizedInputFormatException: ни один из доступных экстракторов (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, экстрактор Eractractor, экстрактор Extractor, экстрактор-экстрактор

    at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractorHolder.selectExtractor(ExtractorMediaPeriod.java:973)
    at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:891)
    at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:379)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...