Files
MoGoAiCloudSdk/app/src/main/java/com/mogo/cloud/LivePlayActivity.java
2021-02-05 12:38:52 +08:00

99 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.mogo.cloud;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceView;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.ToggleButton;
import androidx.appcompat.app.AppCompatActivity;
import com.mogo.cloud.live.listener.ILiveProgressListener;
import com.mogo.cloud.live.manager.MoGoLiveManager;
import com.mogo.cloud.util.Devices;
public class LivePlayActivity extends AppCompatActivity {
private String TAG = "LiveActivity";
private SurfaceView surfaceView;
private ToggleButton liveToggleBtn;
private EditText etLookRoomId;
private boolean isLoginSuccess = false;
private String mStreamId = "STREAM_ID_";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live_play);
surfaceView = findViewById(R.id.surfaceView);
etLookRoomId = findViewById(R.id.etLookRoomId);
liveToggleBtn = findViewById(R.id.liveToggleBtn);
liveToggleBtn.setOnCheckedChangeListener((buttonView, isChecked) -> {
Toast.makeText(getApplicationContext(), buttonView.getText(), Toast.LENGTH_SHORT).show();
if (isChecked) {
String roomId = etLookRoomId.getText().toString().trim();
MoGoLiveManager.getInstance().init(this.getApplication(), null);
MoGoLiveManager.getInstance().loginRoom(Devices.getSn(), roomId);
MoGoLiveManager.getInstance().setLiveProgressListener(listener);
} else {
MoGoLiveManager.getInstance().stopLive();
}
});
}
private ILiveProgressListener listener = new ILiveProgressListener() {
@Override
public void onConnecting() {
}
@Override
public void onConnected(String roomId) {
Log.i(TAG, "onConnected" + roomId);
isLoginSuccess = true;
toggleLive(true);
}
@Override
public void onDisConnect() {
Log.i(TAG, "onDisConnect");
isLoginSuccess = false;
toggleLive(false);
}
@Override
public void onDebugError(int errorCode, String funcName, String errorInfo) {
}
@Override
public void onRoomStreamUpdate(String streamId, boolean isLive) {
Log.i(TAG, "onRoomStreamUpdate" + streamId);
if (streamId != null && isLive) {
Toast.makeText(LivePlayActivity.this, "主播开始直播了", Toast.LENGTH_SHORT).show();
mStreamId = streamId;
} else {
Toast.makeText(LivePlayActivity.this, "主播已离线", Toast.LENGTH_SHORT).show();
}
}
};
private void toggleLive(boolean isChecked) {
if (isChecked) {
mStreamId = MoGoLiveManager.getInstance().startLive(surfaceView);
} else {
MoGoLiveManager.getInstance().stopLive();
}
Log.i(TAG, "toggleLive status : " + isChecked + " , mStreamId : " + mStreamId);
}
@Override
protected void onDestroy() {
super.onDestroy();
MoGoLiveManager.getInstance().onDestroyLive();
}
}