Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用exoplayer播放m3u8文件_Java_Android_Http Live Streaming_Exoplayer - Fatal编程技术网

Java 使用exoplayer播放m3u8文件

Java 使用exoplayer播放m3u8文件,java,android,http-live-streaming,exoplayer,Java,Android,Http Live Streaming,Exoplayer,我正在尝试将Exo player嵌入到我的Android应用程序中以播放m3u8文件,但它不起作用 我使用下面的代码启动播放器活动 导入android.content.pm.ActivityInfo; 导入android.net.Uri; 导入android.os.Bundle; 导入android.os.Handler; 导入android.view.view; 导入android.view.Window; 导入android.view.WindowManager; 导入android.wid

我正在尝试将Exo player嵌入到我的Android应用程序中以播放m3u8文件,但它不起作用

我使用下面的代码启动播放器活动

导入android.content.pm.ActivityInfo;
导入android.net.Uri;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.view.Window;
导入android.view.WindowManager;
导入android.widget.ImageView;
导入android.widget.ProgressBar;
导入androidx.annotation.Nullable;
导入androidx.appcompat.app.appcompat活动;
导入com.google.android.exoplayer2.DefaultLoadControl;
导入com.google.android.exoplayer2.ExoPlaybackException;
导入com.google.android.exoplayer2.ExoPlayerFactory;
导入com.google.android.exoplayer2.LoadControl;
导入com.google.android.exoplayer2.PlaybackParameters;
导入com.google.android.exoplayer2.Player;
导入com.google.android.exoplayer2.SimpleExoPlayer;
导入com.google.android.exoplayer2.Timeline;
导入com.google.android.exoplayer2.source.extractorediasource;
导入com.google.android.exoplayer2.source.MediaSource;
导入com.google.android.exoplayer2.source.TrackGroupArray;
导入com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
导入com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
导入com.google.android.exoplayer2.trackselection.TrackSelectionArray;
导入com.google.android.exoplayer2.trackselection.TrackSelector;
导入com.google.android.exoplayer2.ui.PlayerView;
导入com.google.android.exoplayer2.upstream.BandwidthMeter;
导入com.google.android.exoplayer2.upstream.DataSource;
导入com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
导入com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
导入com.google.android.exoplayer2.util.util;
公共类VideoPlayerActivity扩展了AppCompative活动{
私人播放视频播放器;
私人SimpleExoPlayer SimpleExoPlayer;
私有静态最终字符串文件_URL=“”;
ProgressBar ProgressBar;
全屏幕图像视图;
布尔标志=假;
Handler mainHandler=新处理程序();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setContentView(R.layout.activity\u video\u player);
videoPlayer=findviewbyd(R.id.exo_播放器);
progressBar=findViewById(R.id.progressBar);
btFullScreen=videoPlayer.findviewbyd(R.id.bt_全屏);
setUpExoplayer(getIntent().getStringExtra(“url”);
simpleExoPlayer.addListener(新的Player.EventListener(){
@凌驾
公共void onTimelineChanged(时间线,@Nullable对象清单,int-reason){
}
@凌驾
公共无效onTracksChanged(TrackGroupArray轨迹组、TrackSelectionArray轨迹选择){
}
@凌驾
public void onload已更改(boolean isload){
}
@凌驾
PlayerStateChanged上的公共无效(布尔playWhenReady,int playbackState){
if(playbackState==Player.STATE_缓冲){
progressBar.setVisibility(View.VISIBLE);
}else if(playbackState==Player.STATE_READY){
progressBar.setVisibility(View.GONE);
}
}
@凌驾
公共无效onRepeatModeChanged(int repeatMode){
}
@凌驾
OnShuffleMemodeEnabledChanged(布尔ShuffleMemodeEnabled)上的公共无效{
}
@凌驾
public void onPlayerError(ExoPlaybackException错误){
}
@凌驾
公共位置不连续(内部原因){
}
@凌驾
public void OnPlaybackParameters更改(PlaybackParameters PlaybackParameters){
}
@凌驾
seekProcessed()上的公共void{
}
});
btFullScreen.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
国际单项体育联合会(旗){
btFullScreen.setImageDrawable(getResources().getDrawable(R.drawable.ic_fullscreen));
setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u Picture);
flag=false;
}否则{
btFullScreen.setImageDrawable(getResources().getDrawable(R.drawable.ic_fullscreen_exit));
setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向);
flag=true;
}
}
});
}
专用播放器(字符串url){
LoadControl LoadControl=新的DefaultLoadControl();
带宽计带宽计=新的默认带宽计();
TrackSelector TrackSelector=新的DefaultTrackSelector(
新的AdaptiveTrackSelection.Factory(带宽计)
);
simpleExoPlayer=ExoPlayerFactory.newSimpleInstance(this、trackSelector、loadControl);
videoPlayer.setPlayer(simpleExoPlayer);
DataSource.Factory dataSourceFactory=new DefaultDataSourceFactory(这个,Util.getUserAgent(这个,“LiveFootballerena”);
MediaSource MediaSource=new extractoremiasource.Factory(dataSourceFactory.createMediaSource(Uri.parse(url));
videoPlayer.setKeepScreenOn(真);
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setplaywhenrady(true);
}
@凌驾
受保护的void onPause(){
super.onPause();
simpleExoPlayer.setplaywhenrady(true);
simpleExoPlayer.getPlaybackState();
}
@凌驾
受保护的void onRestart(){
super.onRestart();
s