1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangchaojiang0515-yjPlay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
RELEASESOURCE.md 3.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 16:27 c8545c9

Классы фабрики источников данных

1. Источники данных по умолчанию

   Кэш: CacheDataSinkFactory,CacheDataSourceFactory
   HTTP: DefaultDataSourceFactory,DefaultHttpDataSourceFactory
   Приоритет: PriorityDataSourceFactory

2. Пользовательские источники данных со ссылками

 компилировать 'com.google.android.exoplayer:extension-okhttp:2.7.2'
  компилировать 'com.google.android.exoplayer:extension-rtmp:2.7.2'

3. Пользовательский класс фабрики источников данных:

  • Реализовать интерфейс DataSourceListener и в методе getDataSourceFactory настроить собственный источник данных.
  • При использовании элемента управления воспроизведением создать экземпляр класса.
  exoPlayerManager = new GestureVideoPlayer(this,videoPlayerView,new DataSource(this));
   exoPlayerManager = new GestureVideoPlayer(this,(R.id.exo_play_context_id,new DataSource(this));
  • Демо-код:
     public class DataSource implements DataSourceListener {
          public static final String TAG = "DataSource";
           private Context context;
           public   DataSource (Context context){
               this.context=context;
            }
           @Override
           public com.google.android.exoplayer2.upstream.DataSource.Factory getDataSourceFactory() {
                OkHttpClient  okHttpClient = new OkHttpClient();
               OkHttpDataSourceFactory OkHttpDataSourceFactory=    new OkHttpDataSourceFactory(okHttpClient, Util.getUserAgent(context, context.getApplicationContext().getPackageName()),new DefaultBandwidthMeter() );
                   //Использование OkHttpClient в качестве фабрики источника данных
                 //return  OkHttpDataSourceFactory; ;
                 //Фабрика источника данных по умолчанию
                 // return new JDefaultDataSourceFactory(context);
                 // Фабрика источника данных Rtmp для поддержки протокола Rtmp
                 // return  new RtmpDataSourceFactory();
                //Использование кэша и комбинирование
                 LeastRecentlyUsedCacheEvictor evictor = new LeastRecentlyUsedCacheEvictor(1000000000);
                SimpleCache   simpleCache = new SimpleCache(new File(context.getCacheDir(), "media"), evictor);
                //Источник данных с использованием кэширования, внутри используется фабрика источников данных DefaultDataSourceFactory
                // return  new CacheDataSinkFactory(simpleCache,10000);
                //Комбинация с фабрикой источников данных OkHttp
                return  new CacheDataSourceFactory(simpleCache, OkHttpDataSourceFactory);
                //Комбинация с фабрикой источников данных по умолчанию
               // return  new CacheDataSourceFactory(simpleCache, new JDefaultDataSourceFactory(context));
                //Фабрика источников данных с предоставлением кэширования
               // return new CacheDataSourceFactory(context,1000,1000);
              }
    }

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangchaojiang0515-yjPlay.git
git@api.gitlife.ru:oschina-mirror/yangchaojiang0515-yjPlay.git
oschina-mirror
yangchaojiang0515-yjPlay
yangchaojiang0515-yjPlay
master