Agora Platform을 사용하여 Android에서 WebRTC하기
Android와 PC에서 영상과 음성으로 통화할 수 있도록 합니다.
Agora에 사용자 등록
Agora 사이트에 사용자를 등록하고 로그인합니다.
htps //w w. 아고라. 이오/엔/
로그인하면 Dashboard가 표시되므로 왼쪽 메뉴에서 Projects → Project List를 클릭합니다.
Add New Project 버튼을 클릭하면 아래와 같은 App ID를 얻을 수 있다.
Android 구현
dependencies {
...
implementation 'io.agora.rtc:full-sdk:2.3.1'
}
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
...>
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Activity 또는 Fragment에 처리를 추가합니다.
이번에는 Fragment에 추가하고 싶습니다.
R.string.app_id는 이전에 얻은 앱 ID를 제공합니다.
public class MainFragment extends Fragment {
private RtcEngine mRtcEngine;
private boolean isJoin = false;
private IRtcEngineEventHandler mRtcEventHandler = new IRtcEngineEventHandler() {
};
public MainFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
try {
mRtcEngine = RtcEngine
.create(getContext(), getString(R.string.app_id), mRtcEventHandler);
} catch (Exception e) {
e.printStackTrace();
}
mRtcEngine.enableVideo();
mRtcEngine.setVideoEncoderConfiguration(
new VideoEncoderConfiguration(VideoEncoderConfiguration.VD_640x360,
VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_15,
VideoEncoderConfiguration.STANDARD_BITRATE,
VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_PORTRAIT));
FrameLayout frameLayout = view.findViewById(R.id.frameLayout);
SurfaceView surfaceView = RtcEngine.CreateRendererView(getContext());
surfaceView.setZOrderMediaOverlay(true);
frameLayout.addView(surfaceView);
mRtcEngine.setupLocalVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_FIT, 0));
mRtcEngine.startPreview();
return view;
}
@Override
public void onPause() {
mRtcEngine.leaveChannel();
super.onPause();
}
public void changeChannel() {
if (!isJoin) {
isJoin = true;
// "1000"は、PC側と合わせる必要があります。
mRtcEngine.joinChannel(null, "1000", "Extra Optional Data", 0);
} else {
isJoin = false;
mRtcEngine.leaveChannel();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment);
if (fragment instanceof MainFragment) {
((MainFragment) fragment).changeChannel();
}
}
});
}
PC 준비
htps : // / cs. 아고라. 이오/엔/ゔぃ로 오/우ぇb_p레파레? p t t rm = u b
위의 "Method 3 : Get the SDK from the official Agora website"에서 Agora_Web_SDK_v2_5_0_FULL.zip을 다운로드하십시오.
압축을 풀고 index.html을 실행합니다.
방금 검색한 앱 ID를 입력하세요.
Android와 PC 각각에서 Join하면 영상과 음성이 연결됩니다.
채널의 1000은 Android 측과 일치해야합니다. 여기의 문자열을 변경하여 연결할 상대를 선택할 수 있습니다.
세세한 설정은 하고 있지 않습니다만, 단순하게 영상과 음성으로 통화 할 수 있도록 하는 것만이라면, 편하게 실장을 할 수 있으므로, 시험해 보세요.
Reference
이 문제에 관하여(Agora Platform을 사용하여 Android에서 WebRTC하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shimizu-you/items/275c5dd752aaa8e001bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)