Skip to content

Commit f2a410b

Browse files
author
zhaoyongqiang
committed
Merge branch 'dev/4.0.0-GA' of github.com:AgoraIO/API-Examples into dev/4.0.0-GA
2 parents 7e79778 + 29a5d12 commit f2a410b

11 files changed

Lines changed: 93 additions & 16 deletions

File tree

Android/APIExample/app/build.gradle

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,23 @@ android {
3636

3737
dependencies {
3838
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
39-
implementation 'io.agora.rtc:agora-full-beta:4.0.0-beta.1'
39+
40+
def agora_sdk_version = "4.0.0.test3"
41+
// case 1: full lib
42+
// implementation "io.agora.rtc:agora-special-full:${agora_sdk_version}"
43+
// case 2: partial lib
44+
implementation "io.agora.rtc:full-rtc-basic-special:${agora_sdk_version}"
45+
implementation "io.agora.rtc:ains:${agora_sdk_version}"
46+
implementation "io.agora.rtc:full-super-resolution:${agora_sdk_version}"
47+
implementation "io.agora.rtc:full-virtual-background:${agora_sdk_version}"
48+
implementation "io.agora.rtc:full-content-inspect:${agora_sdk_version}"
49+
implementation "io.agora.rtc:full-screen-sharing:${agora_sdk_version}"
50+
implementation "io.agora.rtc:spatial-audio:${agora_sdk_version}"
51+
implementation "io.agora.rtc:audio-beauty:${agora_sdk_version}"
52+
implementation "io.agora.rtc:screen-capture:${agora_sdk_version}"
53+
implementation "io.agora.rtc:clear-vision:${agora_sdk_version}"
54+
implementation "io.agora.rtc:pvc:${agora_sdk_version}"
55+
4056

4157
implementation 'androidx.appcompat:appcompat:1.1.0'
4258
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

Android/APIExample/app/src/main/java/io/agora/api/example/ExampleActivity.java

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
package io.agora.api.example;
22

3+
import android.Manifest;
4+
import android.annotation.SuppressLint;
35
import android.app.Activity;
46
import android.content.Intent;
7+
import android.os.Build;
58
import android.os.Bundle;
69
import android.view.MenuItem;
710
import android.widget.TextView;
811

12+
import androidx.annotation.NonNull;
913
import androidx.annotation.Nullable;
1014
import androidx.appcompat.app.ActionBar;
1115
import androidx.appcompat.app.AppCompatActivity;
1216
import androidx.fragment.app.Fragment;
1317

18+
import com.yanzhenjie.permission.AndPermission;
19+
import com.yanzhenjie.permission.runtime.Permission;
20+
21+
import java.util.ArrayList;
22+
import java.util.List;
23+
1424
import io.agora.api.example.common.Constant;
1525
import io.agora.api.example.common.model.ExampleBean;
1626
import io.agora.api.example.examples.advanced.AdjustVolume;
@@ -167,9 +177,40 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
167177
fragment = new JoinChannelAudio();
168178
break;
169179
}
170-
getSupportFragmentManager().beginTransaction()
171-
.replace(R.id.fragment_Layout, fragment)
172-
.commit();
180+
runOnPermissionGranted(()-> {
181+
getSupportFragmentManager().beginTransaction()
182+
.replace(R.id.fragment_Layout, fragment)
183+
.commit();
184+
});
185+
}
186+
187+
@SuppressLint("WrongConstant")
188+
private void runOnPermissionGranted(@NonNull Runnable runnable){
189+
List<String> permissionList = new ArrayList<>();
190+
permissionList.add(Permission.READ_EXTERNAL_STORAGE);
191+
permissionList.add(Permission.WRITE_EXTERNAL_STORAGE);
192+
permissionList.add(Permission.RECORD_AUDIO);
193+
permissionList.add(Permission.CAMERA);
194+
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
195+
permissionList.add(Manifest.permission.BLUETOOTH_CONNECT);
196+
}
197+
198+
String[] permissionArray = new String[permissionList.size()];
199+
permissionList.toArray(permissionArray);
200+
201+
if (AndPermission.hasPermissions(this,permissionArray))
202+
{
203+
runnable.run();
204+
return;
205+
}
206+
// Request permission
207+
AndPermission.with(this).runtime().permission(
208+
permissionArray
209+
).onGranted(permissions ->
210+
{
211+
// Permissions Granted
212+
runnable.run();
213+
}).start();
173214
}
174215

175216
@Override

windows/APIExample/APIExample/APIExample.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ BEGIN
276276
LTEXT "",IDC_STATIC_DETAIL,442,325,181,58
277277
EDITTEXT IDC_EDIT_AUDIO_MIX_PATH,71,345,218,13,ES_AUTOHSCROLL
278278
CONTROL "only local play",IDC_CHK_ONLY_LOCAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,307,365,61,10
279-
CONTROL "replace microphone",IDC_CHK_REPLACE_MICROPHONE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,374,365,78,10
279+
CONTROL "replace microphone",IDC_CHK_REPLACE_MICROPHONE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,374,365,78,10
280280
LTEXT "repeat times",IDC_STATIC_AUDIO_REPEAT,11,363,48,8
281281
EDITTEXT IDC_EDIT_AUDIO_REPEAT_TIMES,71,363,218,13,ES_AUTOHSCROLL
282282
CONTROL "",IDC_SLIDER_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,381,224,15

windows/APIExample/APIExample/APIExample.vcxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,9 @@ copy $(SolutionDir)APIExample\Advanced\LocalVideoTranscoding\agora.jpg $(Solutio
365365
<None Include="res\APIExample.rc2" />
366366
</ItemGroup>
367367
<ItemGroup>
368+
<CopyFileToFolders Include="res\agora.png">
369+
<DeploymentContent>false</DeploymentContent>
370+
</CopyFileToFolders>
368371
<Image Include="res\APIExample.ico" />
369372
<Image Include="res\IDB_NETWORK_QUALITY.bmp" />
370373
<CopyFileToFolders Include="res\local.bmp" />

windows/APIExample/APIExample/APIExample.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,5 +390,8 @@
390390
<CopyFileToFolders Include="res\remote.bmp">
391391
<Filter>Resource Files</Filter>
392392
</CopyFileToFolders>
393+
<CopyFileToFolders Include="res\agora.png">
394+
<Filter>Resource Files</Filter>
395+
</CopyFileToFolders>
393396
</ItemGroup>
394397
</Project>

windows/APIExample/APIExample/Advanced/AudioMixing/CAgoraAudioMixingDlg.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,6 @@ void CAgoraAudioMixingDlg::OnBnClickedButtonSetAudioMix()
275275
//strAudioPath = "http://10.70.1.19:9091/file/api/download/electron-wayang/\%E5\%B9\%B4\%E5\%B0\%91\%E6\%9C\%89\%E4\%B8\%BA\%E6\%9D\%8E\%E8\%8D\%A3\%E6\%B5\%A9.mp3";
276276
int nRet = m_rtcEngine->startAudioMixing(strAudioPath.c_str(),
277277
bOnlyLocal,
278-
bReplaceMicroPhone,
279278
iRepeatTimes
280279
);
281280
strInfo.Format(_T("path:%s,\nonlyLocal:%s,\nReplaceMicroPhone:%s,\nRepeatTimes:%d"), strPath,

windows/APIExample/APIExample/Advanced/LocalVideoTranscoding/CLocalVideoTranscodingDlg.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
150150

151151
stream_infos[i].x = 0;
152152
stream_infos[i].y = 0;
153-
stream_infos[i].width = 200;
154-
stream_infos[i].height = 200;
153+
stream_infos[i].width = 60;
154+
stream_infos[i].height = 60;
155155
stream_infos[i].imageUrl = m_imgPng.c_str();
156156
stream_infos[i].mirror = false;
157-
stream_infos[i].zOrder = 2;
157+
stream_infos[i].zOrder = 3;
158158
//jpg image
159159
++i;
160160
stream_infos[i].sourceType = agora::media::RTC_IMAGE_JPEG_SOURCE;
@@ -165,7 +165,7 @@ void CLocalVideoTranscodingDlg::OnBnClickedButtonJoinchannel()
165165
stream_infos[i].height = 64;
166166
stream_infos[i].imageUrl = m_imgJpg.c_str();
167167
stream_infos[i].mirror = false;
168-
stream_infos[i].zOrder = 2;
168+
stream_infos[i].zOrder = 4;
169169
//video encoder configuration
170170
agora::rtc::VideoEncoderConfiguration encoder_config;
171171
encoder_config.codecType = agora::rtc::VIDEO_CODEC_H264;

windows/APIExample/APIExample/Advanced/MediaPlayer/CAgoraMediaPlayer.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -343,9 +343,7 @@ void CAgoraMediaPlayer::OnBnClickedButtonPlay()
343343
}
344344
}
345345

346-
347-
//push video button click handler.
348-
void CAgoraMediaPlayer::OnBnClickedButtonPublishVideo()
346+
void CAgoraMediaPlayer::ToggleMediaPlayerPublish()
349347
{
350348
if (m_publishMeidaplayer) {
351349
ChannelMediaOptions op;
@@ -368,7 +366,7 @@ void CAgoraMediaPlayer::OnBnClickedButtonPublishVideo()
368366
options.publishMediaPlayerAudioTrack = true;
369367
options.publishMediaPlayerId = m_mediaPlayer->getMediaPlayerId();
370368
options.publishCameraTrack = false;
371-
options.publishMicrophoneTrack = false;
369+
options.publishMicrophoneTrack = false;
372370
options.autoSubscribeAudio = false;
373371
options.autoSubscribeVideo = false;
374372
m_rtcEngine->updateChannelMediaOptions(options);
@@ -378,6 +376,13 @@ void CAgoraMediaPlayer::OnBnClickedButtonPublishVideo()
378376
}
379377

380378

379+
//push video button click handler.
380+
void CAgoraMediaPlayer::OnBnClickedButtonPublishVideo()
381+
{
382+
ToggleMediaPlayerPublish();
383+
}
384+
385+
381386
//show notify information
382387
void CAgoraMediaPlayer::OnSelchangeListInfoBroadcasting()
383388
{
@@ -434,6 +439,12 @@ LRESULT CAgoraMediaPlayer::OnmediaPlayerStateChanged(WPARAM wParam, LPARAM lPara
434439
break;
435440
case agora::media::base::PLAYER_STATE_STOPPED:
436441
strState = _T("PLAYER_STATE_STOPPED");
442+
//when player is stopped, unpublish the stream if it's publishing
443+
//if player is stopped w/o stopping publishing, the timestamp will be incorrect next time it
444+
//opens a media file again
445+
if (m_publishMeidaplayer) {
446+
ToggleMediaPlayerPublish();
447+
}
437448
break;
438449
case agora::media::base::PLAYER_STATE_FAILED:
439450
strState = _T("PLAYER_STATE_FAILED");

windows/APIExample/APIExample/Advanced/MediaPlayer/CAgoraMediaPlayer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ class CAgoraMediaPlayer : public CDialogEx
267267
afx_msg void OnBnClickedButtonOpen();
268268
afx_msg void OnBnClickedButtonStop();
269269
afx_msg void OnBnClickedButtonPlay();
270-
270+
void ToggleMediaPlayerPublish();
271271
afx_msg void OnBnClickedButtonPublishVideo();
272272

273273
afx_msg void OnSelchangeListInfoBroadcasting();

windows/APIExample/APIExample/Advanced/RegionConn/CAgoraRegionConnDlg.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ bool CAgoraRegionConnDlg::InitAgora()
121121
m_cmbAreaCode.GetWindowText(area_code);
122122

123123
//set area code
124+
CString strInfo;
124125
context.areaCode = m_mapAreaCode[area_code];
126+
strInfo.Format(_T("areaCode: %u"), context.areaCode);
127+
m_lstInfo.InsertString(m_lstInfo.GetCount(), strInfo);
128+
125129
context.eventHandler = &m_eventHandler;
126130
//set channel profile in the engine to the CHANNEL_PROFILE_LIVE_BROADCASTING.
127131
context.channelProfile = CHANNEL_PROFILE_LIVE_BROADCASTING;
@@ -240,7 +244,7 @@ BOOL CAgoraRegionConnDlg::OnInitDialog()
240244

241245
int nIndex = 0;
242246

243-
m_cmbAreaCode.InsertString(nIndex++, _T("AREA_CODE_GLOBAL"));
247+
m_cmbAreaCode.InsertString(nIndex++, _T("AREA_CODE_GLOB"));
244248
m_cmbAreaCode.InsertString(nIndex++, _T("AREA_CODE_CN"));
245249
m_cmbAreaCode.InsertString(nIndex++, _T("AREA_CODE_NA"));
246250
m_cmbAreaCode.InsertString(nIndex++, _T("AREA_CODE_EUR"));

0 commit comments

Comments
 (0)