Нажав кнопку воспроизведения, приложение остановилось, снова открыть - PullRequest
0 голосов
/ 15 октября 2018

Я создаю прямую трансляцию телепрограммы с помощью плейлиста hls и exo player.Но когда я нажимаю кнопку воспроизведения, это останавливается.Пожалуйста, посмотрите код и дайте мне предложение.

вот ошибка, которая отображается на logcat, но я не могу понять: here is the error that shows on logcat, but I can't understand,

<com.google.android.exoplayer2.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

2.Ява код

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); //logcat indicate this line
    setContentView(R.layout.activity_streaming);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    url = getIntent().getStringExtra("url");
    Uri videoUri = Uri.parse(url);


    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
    TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
    TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);

    // Create a default LoadControl
    LoadControl loadControl = new DefaultLoadControl();
    //Bis. Create a RenderFactory
    RenderersFactory renderersFactory = new DefaultRenderersFactory(this);

    //Create the player
    player = ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector, loadControl);
    simpleExoPlayerView = new SimpleExoPlayerView(this);
    simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.player_view);


    //Set media controller
    simpleExoPlayerView.setUseController(true);
    simpleExoPlayerView.requestFocus();

    // Bind the player to the view.
    simpleExoPlayerView.setPlayer(player);

    //Measures bandwidth during playback. Can be null if not required.
    DefaultBandwidthMeter bandwidthMeterA = new DefaultBandwidthMeter();

    //Produces DataSource instances through which media data is loaded.
    DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "PiwikVideoApp"), bandwidthMeterA);

    //Produces Extractor instances for parsing the media data.
    ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();

    //FOR LIVE STREAM LINK:
    MediaSource videoSource = new HlsMediaSource(videoUri, dataSourceFactory, 1, null, null);
    final MediaSource mediaSource = videoSource;


    player.prepare(mediaSource);

}

}

1 Ответ

0 голосов
/ 15 октября 2018

Если вы хотите что-то сделать, когда нажата кнопка воспроизведения, вы должны поместить метод button.SetOnClickListener.Как это:

final Button button = findViewById(R.id.button_id);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Code here executes on main thread after user presses button
             }
         });

Больше информации об этом вы можете найти здесь.

...