Невозможно использовать Exoplayer lib в Android
Я пытаюсь реализовать Exoplayer
в Android для потоковой передачи песен. Это то, что я пытался до сих пор, перейдя по этой ссылке
У меня есть 2 кнопки в файле макета, одна для запуска проигрывателя и другая для остановки.
Вот файл класса
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button btPlay = (Button) findViewById(R.id.bt_play);
Button btStop = (Button) findViewById(R.id.bt_stop);
Context mContext = getBaseContext();
String URL = "http://sound15.mp3slash.net/indian/tummile/tummile01(www.songs.pk).mp3";
btPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse(URL);
final int numRenderers = 2;
SampleSource sampleSource = new FrameworkSampleSource(mContext, uri, null, numRenderers);
//above line gives me error
TrackRenderer audioTrack = new MediaCodecAudioTrackRenderer(sampleSource);
ExoPlayer exoPlayer = ExoPlayer.Factory.newInstance(numRenderers);
exoPlayer.prepare(audioTrack);
exoPlayer.setPlayWhenReady(true);
}
});
}
Ошибка выдается в строке SampleSource, которая говорит
не удается разрешить конструктор FrameworkSampleSource
Как мне справиться с этой ошибкой и продолжить потоковую песню. Любая помощь будет оценена!
1 ответ
Для правильного использования библиотеки: YouTube видео
FrameworkSampleSource не рекомендуется использовать ExtractorSampleSource
см. ниже код:
String url = parentArray.getJSONObject(songIndex).getString("file");
Uri uri = Uri.parse(url);
player = ExoPlayer.Factory.newInstance(1);
playerControl = new PlayerControl(player);
DataSource dataSource = new DefaultUriDataSource(this, TAG);
ExtractorSampleSource extractorSampleSource = new ExtractorSampleSource(uri, dataSource, new DefaultAllocator(64 * 1024), 64 * 1024 * 256);
audioRenderer = new MediaCodecAudioTrackRenderer(extractorSampleSource, MediaCodecSelector.DEFAULT);
player.prepare(audioRenderer);
player.setPlayWhenReady(true);