Перейти к содержимому


Проигрывание аудиопотока в сервисе


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Гость_Наталья_*

Гость_Наталья_*
  • Гости

Отправлено 09 Август 2017 - 11:12

Ребята, подскажите пожалуйста как переделать мой код и перенести проигрывание аудиопотока из Activity и сервис? Хотела бы сделать так чтобы при открытии данного активити воспроизведение аудио работало в сервисе и чтобы создавалось уведомление куда будет выводиться название аудио потока и кнопка "Стоп" чтобы нажав на него можно было остановить сервис (ну то есть воспроизведение аудио)

 

Вот пока что есть у меня

public class PlayerActivity extends AppCompatActivity {

private String audioUrl;
private String audioTitle;
private boolean isPlay;
ImageButton playPauseBtn;

BandwidthMeter bandwidthMeter;
TrackSelector trackSelector;
SimpleExoPlayer player;
private SimpleExoPlayerView simpleExoPlayerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

****

playPauseBtn = (ImageButton) findViewById(R.id.playPauseBtn);

audioUrl = getIntent().getExtras().getString("audioUrl").toString().trim();
audioTitle = getIntent().getExtras().getString("audioTitle").toString().trim();

bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory streamSelectionFactory = new AdaptiveVideoTrackSelection.Factory(bandwidthMeter);
trackSelector = new DefaultTrackSelector(streamSelectionFactory);

player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl());
simpleExoPlayerView = new SimpleExoPlayerView(this);
simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.player_view);
simpleExoPlayerView.setUseController(true);
simpleExoPlayerView.requestFocus();
simpleExoPlayerView.setPlayer(player);
Uri streamUri = Uri.parse(audioUrl);
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "yourApplicationName"), bandwidthMeter);
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();

MediaSource mediaSource = new ExtractorMediaSource(streamUri, dataSourceFactory, extractorsFactory, null, null);
player.prepare(mediaSource);

player.setPlayWhenReady(true);
isPlay = true;

if (player.getPlayWhenReady() == true) {
playPauseBtn.setImageResource(R.drawable.icon_stop);
}
}

@Override
protected void onDestroy() {
super.onDestroy();
player.release();
}

public void onPlayMethod(View view) {
if (isPlay == true) {
if (player.getPlayWhenReady() == true) {
player.setPlayWhenReady(false);
isPlay = false;
playPauseBtn.setImageResource(R.drawable.ic_play);
}
} else if (isPlay == false) {
if (player.getPlayWhenReady() == false) {
player.setPlayWhenReady(true);
isPlay = true;
playPauseBtn.setImageResource(R.drawable.ic_stop);
}
}
}

}


Форуматор

Форуматор
  • Форуматоры

Отправлено 10 Август 2015 - 09:21

#2 gresaggr

gresaggr

    Продвинутый пользователь

  • Модераторы
  • 4 773 сообщений

Отправлено 09 Август 2017 - 11:18

Добрый день.

К сожалению, в вопросах программирования под Андроид мы не сможем вам помочь.






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных