这里直接开发部分,如果想知道什么是rtsp,可自行查阅资料完再来看 参考博客:android 播放rtsp流的三种方式添加链接描述
一、添加依赖
1、build.gradle(:app) —> dependencies{ 添加 }
compile 'com.github.NodeMedia:NodeMediaClient-Android:2.8.4'
2、拉取第三方依赖时,需要添加一些东西 build.gradle(项目名称) —> allprojects{ … } —> repositories{ 添加 }
maven { url 'https://jitpack.io' }
完整示例:
allprojects {
repositories {
google()
maven { url 'https://jitpack.io' }
jcenter()
}
}
二、开启视频
private NodePlayerView nodePlayerView;
private NodePlayer nodePlayer;
private String address = "rtmp://58.200.131.2:1935/livetv/hunantv";
public void startVideo(){
nodePlayerView = findViewById(R.id.nodePlayer);
nodePlayerView.setRenderType(NodePlayerView.RenderType.SURFACEVIEW);
nodePlayerView.setUIViewContentMode(NodePlayerView.UIViewContentMode.ScaleToFill);
nodePlayer = new NodePlayer(this);
nodePlayer.setPlayerView(nodePlayerView);
nodePlayer.setRtspTransport(NodePlayer.RTSP_TRANSPORT_TCP);
nodePlayer.setInputUrl(address);
nodePlayer.setVideoEnable(true);
nodePlayer.setBufferTime(100);
nodePlayer.setMaxBufferTime(200);
}
@Override
protected void onDestroy() {
super.onDestroy();
nodePlayer.stop();
nodePlayer.release();
}[添加链接描述](https://blog.csdn.net/zxwd2015/article/details/86651216)
xml
<cn.nodemedia.NodePlayerView
android:layout_width="match_parent"
android:id="@+id/nodePlayer"
android:layout_height="match_parent"/>
三、问题集合
1、AndroidStudio报错Manifest merger failed : Attribute application@appComponentFactory value=(android.sup
2、Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes?
3、依赖问题:可能在其他设备上运行,目前版本可能会闪退,可换一下其他版本
compile 'com.github.NodeMedia:NodeMediaClient-Android:2.9.10'
4、添加权限(具体不知道添加哪条了)
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|