无意间发现有个群主(小路飞)写了一个直播的sdk(可自定义界面) 548545202
下载好sdk先导入项目,至于过程就不过多的描述。
导入完之后在项目里面的build.grable配置下面的信息(里面的版本信息看你的studio的版本而定)
ext {
compileSdkVersion = 23
buildToolsVersion = '23.0.3'
targetSdkVersion = 23
//主程序版本
minSdkVersion = 19
versionCode = 1
versionName = "1.0.0.01"
//library版本
jjdxm_minSdkVersion = 9
jjdxm_versionCode = 1
jjdxm_versionName = "1.0.0"
jjdxm_v4 = 'com.android.support:support-v4:23.3.0'
jjdxm_v7 = 'com.android.support:appcompat-v7:23.3.0'
}
配置完这个之后应该就不回报错。
接着你就可以使用播放器
public class IJKPlayerLiveActivity extends Activity {
private LivePlayerInfoBean livePlayerInfoBean;
public static final String DATA = "live";
private PlayerView player;
private Context mContext;
private View rootView;
// private String url = "rtmp://203.207.99.19:1935/live/CCTV5";
private String title = "标题";
private PowerManager.WakeLock wakeLock;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏状态栏
this.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
/* getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);*/
getWindow().getDecorView().setSystemUiVisibility(View.INVISIBLE);
this.mContext = this;
livePlayerInfoBean = (LivePlayerInfoBean) getIntent().getSerializableExtra(DATA);
rootView = getLayoutInflater().from(this).inflate(R.layout.simple_player_view_player, null);
setContentView(rootView);
player = new PlayerView(this, rootView)
.setTitle(title)
.setScaleType(PlayStateParams.fitparent)
.hideMenu(true)
.hideSteam(true)
.setForbidDoulbeUp(true)
.hideCenterPlayer(true)
.hideControlPanl(true)
.showThumbnail(new OnShowThumbnailListener() {
@Override
public void onShowThumbnail(ImageView ivThumbnail) {
Glide.with(mContext)
.load("http://"+ SpUtil.getString(getContext(), Constacts.IP_ADDRESS)+":88" +livePlayerInfoBean.getSmallImage())
.placeholder(R.color.cl_default)
.error(R.color.cl_error)
.into(ivThumbnail);
}
}).setPlaySource(livePlayerInfoBean.getVideo())//播放流地址rtmp
.startPlay();
}
@Override
protected void onPause() {
super.onPause();
if (player != null) {
player.onPause();
}
}
@Override
protected void onResume() {
super.onResume();
if (player != null) {
player.onResume();
}
if (wakeLock != null) {
wakeLock.acquire();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (player != null) {
player.onDestroy();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (player != null) {
player.onConfigurationChanged(newConfig);
}
}
@Override
public void onBackPressed() {
if (player != null && player.onBackPressed()) {
return;
}
super.onBackPressed();
if (wakeLock != null) {
wakeLock.release();
}
}
//获取LivePlayerFragment传过来的数据
private void initData() {
livePlayerInfoBean = (LivePlayerInfoBean) getIntent().getSerializableExtra(DATA);
Log.i("7758258",livePlayerInfoBean.getVideo());
}
}
群主博客更加详细 http://blog.youkuaiyun.com/u014608640/article/details/52607577