使用Mobile SDK LiveStreamManager进行推流经常中断问题
0
发表于2020-11-11
手机看帖
3
2006
使用Mobile SDK中的LiveStreamManager调用setLiveUrl后调用startStream开始向Flash Media Server进行RTMP推流,发现推流经常中断,Android Studio日志显示如下图,当出现红框中的Log信息时推流正常,当出现红框下方的Log信息时推流已中断,两种Log的区别是中断后不显示E/Lightbridge相关的红色行。这种中断经常发生,不知为什么?恳请解答。程序代码如下所示。
代码:
//开始RTMP推流
public static void startRTMP(final int delay){
new Thread(new Runnable() {
@Override
public void run() {
if(delay > 0) {
try {
Thread.sleep(4000);
}
catch (InterruptedException e) {
}
}
LiveStreamManager liveStreamManager = ModuleVerificationUtil.getLiveStreamManager();
if(liveStreamManager == null){
MApplication.toast("找不到LiveStreamManager");
return;
} else if(liveStreamManager.isStreaming()){
MApplication.toast("已启动推流");
return;
} else {
String url = String.format("rtmp://%s/live/stream", SettingsUtil.getRemoteAddress());
liveStreamManager.setLiveUrl(url);
liveStreamManager.setStartTime();
liveStreamManager.setVideoEncodingEnabled(true);
liveStreamManager.setAudioStreamingEnabled(false);
liveStreamManager.setVideoSource(LiveStreamManager.LiveStreamVideoSource.Primary);
liveStreamManager.startStream();
if (liveStreamManager.isStreaming()) {
//Log.d(TAG, "start RTMP at " + url);
MApplication.toast("启动RTMP推流成功,URL=" + url);
} else {
MApplication.toast("启动RTMP推流失败,URL=" + url);
}
}
}
}).start();
}
public static void stopRTMP(){
LiveStreamManager liveStreamManager = ModuleVerificationUtil.getLiveStreamManager();
if(liveStreamManager == null){
MApplication.toast("找不到LiveStreamManager");
return;
} else if(!liveStreamManager.isStreaming()){
MApplication.toast("RTMP推流已经停止");
} else {
liveStreamManager.stopStream();
if(liveStreamManager.isStreaming()) {
MApplication.toast("RTMP推流停止失败");
} else {
MApplication.toast("RTMP推流成功停止");
}
}
}
|
|
|
|