Код: Выделить всё
ExoPlayerImplInternal io.ionic.starter E Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:652)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:622)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.exoplayer.source.UnrecognizedInputFormatException: None of the available extractors (FlvExtractor, FlacExtractor, WavExtractor, FragmentedMp4Extractor, Mp4Extractor, AmrExtractor, PsExtractor, OggExtractor, TsExtractor, MatroskaExtractor, AdtsExtractor, Ac3Extractor, Ac4Extractor, Mp3Extractor, AviExtractor, JpegExtractor) could read the stream.
at androidx.media3.exoplayer.source.BundledExtractorsAdapter.init(BundledExtractorsAdapter.java:94)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1018)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:414)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
< /code>
Как решить это
Source Error. Caused by: androidx.media3.exoplayer.source.UnrecognizedInputFormatException: None of the available extractors (FlvExtractor, FlacExtractor, WavExtractor, FragmentedMp4Extractor, Mp4Extractor, AmrExtractor, PsExtractor, OggExtractor, TsExtractor, MatroskaExtractor, AdtsExtractor, Ac3Extractor, Ac4Extractor, Mp3Extractor, AviExtractor, JpegExtractor) could read the stream.ниже, я предоставляю код моего проекта. < /P>
Код: Выделить всё
DataSource.Factory dataSourceFactory = new ResolvingDataSource.Factory(httpDataSourceFactory,
dataSpec -> dataSpec.withRequestHeaders(getHeaders(accessToken, dataSpec.uri.toString())));
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(context).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
player = new ExoPlayer.Builder(context, renderersFactory)
.setMediaSourceFactory(new DefaultMediaSourceFactory(dataSourceFactory))
.setLoadControl(loadControl)
.build();
// some unimportant part...
List mediaSources = new ArrayList();
if (trackUrl.startsWith("https")) { // If audio track is online source
Log.d(TAG, "Creating ProgressiveMediaSource for: " + trackUrl);
DataSource.Factory resolvingDataSourceFactory = new ResolvingDataSource.Factory(httpDataSourceFactory, dataSpec -> dataSpec.withRequestHeaders(getHeaders(headerToken, dataSpec.uri.toString())));
ProgressiveMediaSource progressiveMediaSource = new ProgressiveMediaSource.Factory(resolvingDataSourceFactory).createMediaSource(MediaItem.fromUri(trackUrl));
mediaSources.add(progressiveMediaSource);
} else {
Log.d(TAG, "Creating MediaItem for local file: " + trackUrl);
MediaItem mediaItem = MediaItem.fromUri(trackUrl);
MediaSource mediaSource = new DefaultMediaSourceFactory(context).createMediaSource(mediaItem);
mediaSources.add(mediaSource);
}
player.setMediaSources(mediaSources);
public void playTrackByIndex(int index, long seekPosition) {
player.seekTo(index, seekPosition);
player.prepare();
player.play();
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -exoplayer