无法使用setOnClickListener全屏播放exoPlayer

问题描述 投票:2回答:2

默认情况下,视频将以纵向模式播放,单击imageView1.setOnClickListener时,视频应以full_screen.xml播放>

但是就我而言,我无法在full_screen.xml中播放视频,我还在[[AndroidManifest

中添加了<activity android:name=".Activities.FullScreen"></activity>仍然没有成功。这里是VideoPlayerActivity.java

public class VideoPlayerActivity extends AppCompatActivity { Uri videoUri; @BindView(R.id.playerView) PlayerView playerView; @BindView(R.id.floating_widget) ImageView imageView; @BindView(R.id.full_screen) ImageView imageView1; ExoPlayer exoPlayer; ExtractorsFactory extractorsFactory; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video_player); ButterKnife.bind(this); Intent intent = getIntent(); if (intent!=null){ String uri_str = intent.getStringExtra("videoUri"); videoUri = Uri.parse(uri_str); } imageView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { exoPlayer.setPlayWhenReady(false); exoPlayer.release(); Intent serviceIntent2 = new Intent(VideoPlayerActivity.this,FullScreen.class); serviceIntent2.putExtra("videoUri",videoUri.toString()); startActivity(serviceIntent2); } }); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { exoPlayer.setPlayWhenReady(false); exoPlayer.release(); Intent serviceIntent = new Intent(VideoPlayerActivity.this,FloatingWidgetService.class); serviceIntent.putExtra("videoUri",videoUri.toString()); startService(serviceIntent); } }); BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter)); exoPlayer = ExoPlayerFactory.newSimpleInstance(this,trackSelector); extractorsFactory = new DefaultExtractorsFactory(); playVideo(); } private void playVideo() { try { String playerInfo = Util.getUserAgent(this,"VideoPlayer"); DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this,playerInfo); MediaSource mediaSource = new ExtractorMediaSource(videoUri,dataSourceFactory,extractorsFactory,null,null); playerView.setPlayer(exoPlayer); exoPlayer.prepare(mediaSource); exoPlayer.setPlayWhenReady(true); }catch (Exception e){ e.printStackTrace(); } } @Override protected void onPause() { super.onPause(); exoPlayer.setPlayWhenReady(false); } @Override public void onBackPressed() { super.onBackPressed(); exoPlayer.setPlayWhenReady(false); exoPlayer.release(); } }

还有这里FullScreen.java

package com.sanoj.jlplayer.Activities; public class FullScreen extends AppCompatActivity { @BindView(R.id.fullscreenPlayer) PlayerView playerView; ExoPlayer exoPlayer; ExtractorsFactory extractorsFactory; Uri videoUri; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ButterKnife.bind(this); Intent intent = getIntent(); if (intent!=null){ String uri_str = intent.getStringExtra("videoUri"); videoUri = Uri.parse(uri_str); } BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter)); exoPlayer = ExoPlayerFactory.newSimpleInstance(this,trackSelector); extractorsFactory = new DefaultExtractorsFactory(); playVideo(); } private void playVideo() { try { String playerInfo = Util.getUserAgent(this,"Fullscreen"); DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this,playerInfo); MediaSource mediaSource = new ExtractorMediaSource(videoUri,dataSourceFactory,extractorsFactory,null,null); playerView.setPlayer(exoPlayer); exoPlayer.prepare(mediaSource); exoPlayer.setPlayWhenReady(true); }catch (Exception e){ e.printStackTrace(); } } @Override protected void onPause() { super.onPause(); exoPlayer.setPlayWhenReady(false); } @Override public void onBackPressed() { super.onBackPressed(); exoPlayer.setPlayWhenReady(false); exoPlayer.release(); } }

有人可以帮我弄错吗。

更新:

这里是full_screen.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Activities.FullScreen"> <com.google.android.exoplayer2.ui.PlayerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fullscreenPlayer" app:controller_layout_id="@layout/exo_playback_control_view" app:use_controller="true"> </com.google.android.exoplayer2.ui.PlayerView> </RelativeLayout>

默认情况下,视频将以纵向模式播放,当单击imageView1.setOnClickListener时,视频应在full_screen.xml中播放,但就我而言,我无法在full_screen.xml中播放视频,我...
java android exoplayer2.x
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.