Sto cercando di utilizzare ExoPlayer per riprodurre video su http. E voglio salvare il video dopo che il video è stato caricato e riprodurlo dalla cache. Come implementare la cache e la riproduzione dalla cache? Posso darmi qualche campione.ExoPlayer cache
risposta
Quale protocollo si utilizza mpeg-dash o semplice http.
È possibile eseguire l'override di HttpDataSource e scrivere byte in entrata in un file e durante la riproduzione controllare se il file esiste nella posizione desiderata e modificare InputStream alimentato al lettore dal file anziché HttpDataSource.
L'override di HttpDataSource è un approccio errato perché ExoPlayer ha classi di destinazione per l'implementazione della cache. Ad esempio CacheDataSource. Mi piacerebbe avere il modo giusto di usare questo corso. – fisher3421
Si utilizza cacheDataSource creata utilizzando cache e dataSource. Questo cacheDataSource viene quindi utilizzato da ExtractorSampleSource.Below è il codice per audioRenderer, analogamente può essere fatto per videoRender; passando a exoplayerInstance.prepare (renderer).
Cache cache = new SimpleCache(mCtx.getCacheDir(), new LeastRecentlyUsedCacheEvictor(1024 * 1024 * 10));
DataSource dataSource = new DefaultUriDataSource(mCtx, "My Player");
CacheDataSource cacheDataSource = new CacheDataSource(cache, dataSource, false, false);
Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
ExtractorSampleSource extractorSampleSource = new ExtractorSampleSource(trackURI, cacheDataSource, allocator, BUFFER_SEGMENT_COUNT*BUFFER_SEGMENT_SIZE, new Mp3Extractor());
MediaCodecAudioTrackRenderer audioTrackRenderer = new MediaCodecAudioTrackRenderer(extractorSampleSource);
è questa l'intera implementazione per far funzionare la cache? L'ho implementato, ma stampando 'cache.getCacheSpace()' mostra 0 indipendentemente da ciò che faccio. Qualche idea o suggerimento per riempire la cache? – welshk91
Funziona solo con DASH. Vedi https://github.com/google/ExoPlayer/issues/420 – aeracode
Non penso ci sia un comportamento predefinito che è possibile farlo facilmente. È open source. Puoi biforcare e modificare il percorso di download della cache. – tasomaniac
Ho lo stesso problema. trovi il modo di implementarlo? –
@ fisher3421 hai qualche soluzione che sto cercando anche per me. –