增加了直播状态向外的同步回调
This commit is contained in:
@@ -28,10 +28,11 @@ public abstract class BaseLiveActivity extends AppCompatActivity {
|
||||
// 开始直播
|
||||
protected ToggleButton btnLive;
|
||||
// 保存文件到本地
|
||||
private ToggleButton btnSaveFile;
|
||||
protected ToggleButton btnSaveFile;
|
||||
// 设置摄像头与状态
|
||||
private ToggleButton btnChangeCameraState;
|
||||
|
||||
protected ToggleButton btnChangeCameraState;
|
||||
// 当前直播的状态
|
||||
protected ToggleButton tbLiveStatus;
|
||||
// 相机数据预览
|
||||
protected SurfaceView surfaceView;
|
||||
|
||||
@@ -64,6 +65,8 @@ public abstract class BaseLiveActivity extends AppCompatActivity {
|
||||
toggleCameraState(isChecked);
|
||||
});
|
||||
|
||||
tbLiveStatus = findViewById(R.id.tbLiveStatus);
|
||||
|
||||
initCamer();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.cloud;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.cloud.live.listener.ILiveStatusListener;
|
||||
import com.mogo.cloud.live.manager.ILiveStreamManager;
|
||||
import com.mogo.cloud.live.manager.LiveStreamManagerImpl;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
@@ -22,6 +23,23 @@ public class LivePushActivity extends BaseLiveActivity {
|
||||
// 初始化直播流管理
|
||||
liveStreamManager = LiveStreamManagerImpl.getInstance(this,
|
||||
MoGoAiCloudClientConfig.getInstance().getThirdPartyDeviceId());
|
||||
liveStreamManager.setLiveStatusChangeCallback(new ILiveStatusListener() {
|
||||
@Override
|
||||
public void onChange(String camId, int status) {
|
||||
tbLiveStatus.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (status == 0) {
|
||||
tbLiveStatus.setTextColor(getResources().getColor(R.color.colorStartLive));
|
||||
tbLiveStatus.setChecked(true);
|
||||
} else {
|
||||
tbLiveStatus.setTextColor(getResources().getColor(R.color.colorStopLive));
|
||||
tbLiveStatus.setChecked(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,6 +8,14 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/tbLiveStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#FFFF"
|
||||
android:padding="10dp"
|
||||
android:textOff="直播已停止"
|
||||
android:textOn="直播进行中" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/flTestPanel"
|
||||
|
||||
@@ -3,4 +3,6 @@
|
||||
<color name="colorPrimary">#6200EE</color>
|
||||
<color name="colorPrimaryDark">#3700B3</color>
|
||||
<color name="colorAccent">#03DAC5</color>
|
||||
<color name="colorStartLive">#4CAF50</color>
|
||||
<color name="colorStopLive">#F44336</color>
|
||||
</resources>
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mogo.cloud.live.manager;
|
||||
|
||||
|
||||
import com.mogo.cloud.live.listener.ILiveStatusListener;
|
||||
|
||||
public interface ILiveStreamManager {
|
||||
/**
|
||||
* 开始直播
|
||||
@@ -35,6 +37,12 @@ public interface ILiveStreamManager {
|
||||
*/
|
||||
void notifyYUVData(byte[] data, int width, int height, int type);
|
||||
|
||||
/**
|
||||
* 直播状态改变时回调
|
||||
* @param changeCallback live status change callback
|
||||
*/
|
||||
void setLiveStatusChangeCallback(ILiveStatusListener changeCallback);
|
||||
|
||||
/**
|
||||
* 释放资源
|
||||
*/
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.Handler;
|
||||
import android.os.SystemClock;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.cloud.live.listener.ILiveStatusListener;
|
||||
import com.mogo.cloud.live.model.CommandModel;
|
||||
import com.mogo.cloud.live.server.PushService;
|
||||
import com.mogo.cloud.live.socket.SocketMsgUtils;
|
||||
@@ -38,6 +39,8 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
|
||||
private static final String C2 = "C_2"; //后置摄像头
|
||||
private Handler mHandler; // 循环上报摄像头状态
|
||||
private SocketMsgUtils mSocketMsgUtils; // Socket 长链接
|
||||
private ILiveStatusListener mLiveStatusCallback;// 直播状态回调
|
||||
|
||||
|
||||
public static ILiveStreamManager getInstance(Context context, String devicesId) {
|
||||
if (sInstance == null) {
|
||||
@@ -66,7 +69,6 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(CommandModel obj) {
|
||||
Log.i(TAG, "onMsgReceived: obj=" + obj);
|
||||
Logger.i(TAG, "onMsgReceived: obj=" + obj + " systemClock :" + SystemClock.elapsedRealtime() + " SystemTime : " + System.currentTimeMillis());
|
||||
livePushHandler(obj.getType(), obj.getVideoChannel());
|
||||
}
|
||||
@@ -112,6 +114,11 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
|
||||
CameraFrameManager.getInstance().notifyYUVData(data, width, height, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLiveStatusChangeCallback(ILiveStatusListener changeCallback) {
|
||||
this.mLiveStatusCallback = changeCallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void release() {
|
||||
try {
|
||||
@@ -123,6 +130,12 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
|
||||
}
|
||||
}
|
||||
|
||||
private void liveStatusCallbackOnChange(String camId, int status) {
|
||||
if (mLiveStatusCallback != null) {
|
||||
mLiveStatusCallback.onChange(camId, status);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启摄像头状态循环
|
||||
*/
|
||||
@@ -169,7 +182,10 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
|
||||
PushService.startService(mContext, PushService.ACTION_FORCED_STOP_RTMP_PUSH,
|
||||
LiveStreamManagerImpl.mDevicesId);
|
||||
}
|
||||
// 记录直播状态
|
||||
sCam1LiveStatus = status;
|
||||
// 向外同步状态
|
||||
liveStatusCallbackOnChange(C1, sCam1LiveStatus);
|
||||
} else {
|
||||
Log.d(TAG, "目前只支持前置行车记录仪");
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ PASSWORD=xintai2018
|
||||
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
|
||||
RELEASE=true
|
||||
# AI CLOUD 云平台
|
||||
MOGO_UTILS_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_NETWORK_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_HTTPDNS_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_PASSPORT_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_SOCKET_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_REALTIME_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_TANLU_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_LIVE_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_TRAFFICLIVE_VERSION=1.0.13-SNAPSHOT
|
||||
MOGO_UTILS_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_NETWORK_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_HTTPDNS_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_PASSPORT_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_SOCKET_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_REALTIME_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_TANLU_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_LIVE_VERSION=1.0.14-SNAPSHOT
|
||||
MOGO_TRAFFICLIVE_VERSION=1.0.14-SNAPSHOT
|
||||
|
||||
Reference in New Issue
Block a user