Skip to content

Commit

Permalink
Dev/4.3.0 (#365)
Browse files Browse the repository at this point in the history
* update  code  style

* [Android]add custom stream encrypt case.

* [Android]update README links.

* Dev/oc test (#353)

* ci adapting objective-c

* add objective-c APIExample project

* add export ipa

* modify ci script

* modify OC path

* ..

* ..

* update SDK version to 4.2.2

* ..

* fix rtmp push bug

* fix ios 12.0 version runing bug

* fix fusion cdn ui bug

* fix fusion cdn change rtc bug

* fix fusion cdn ui bug

* add OC Moudle README

* modify README

---------

Co-authored-by: zhaoyongqiang <zhaoyongqiang@agora.io>

* Dev/4.2.3 (#354)

* add third player moudle

* add Audio Waveform Moudle

* Fixed an issue where remote users joined player pause when rtc and player were used at the same time

* fix ui issue

* update content inspect config

* add Feature Available On Device

* add take snapshot ex

* update beautyAPI version to 1.0.3

* add Feature Available On Device

* add snapshot ex

* fix snapshot remote bug

* [Android]Add AudioRouterPlayer case.

* [Android]Add AudioWaveform case.

* [Android][Audio]add AudioWaveform case.

* [Android]adjust content inspect case.

* [Android]Add isFeatureAvailableOnDevice api in VideoProcessExtension.

* [Android]Add takesnapshotex for JoinMultipleChannel.

* [Android]update beauty api to 1.0.3 and etc.

* [Windows]add snapshot for MultiChannel.

* [Windows]fix snapshot bug.

* fix oc crate stream data bug

* fix swift create stream data bug

* [Android]fix remote render error when rejoining channel(NMS-15581).

* [Android]perfect PushExternalVideoYUV case.

* add file sharing key

* fix title

* fix  multi channel bug

* fix conent inspect bug

* [Windows]fix media player crash.

* [Android]perfect MultiVideoSourceTracks case.

* fix input token crash bug

* fix input token crash bug

* [Android]Update readme. (#355)

* [Android]add 4K 60fps h265. (#356)

* [Android]fix ui bug.

* [Android]fix render bug(CSD-59845).

* Fix the issue of no sound during AVPlayer playback

* [Android]add cases of enableVideoImageSource and setAINSMode api and etc.

* [Android]add setAINSMode api case and etc.

* add video image push

* add AINS Mode

* iOS Add AINS Mode

* ios add video image push

* [Windows]add enableVideoImageSource and setAINSMode api case.

* [MacOS]fix audio recording path bug.

* fix startAudioRecording path bug

* fix  audio session change issue

* fix video image source issue

* ..

* fix  exit screen leave channel issue

* screen shareing auto close system interface

* [Android]update rtc verstion and etc.

* [Windows]Update rtc verstion.

* update SDK version to  4.2.3

---------

Co-authored-by: zhaoyongqiang <zhaoyongqiang@agora.io>

* Update setLocalAccessPoint note and etc. (#358)

* Add gitee sync script.

* Update gitee sync script.

* Test gitee sync.

* Feat/code style android (#366)

* [Android]add check style config.

* [Android]update check style config.

* [Android]update codes with checked style.

* [Android]Adapt to 4.3.0 and add audio stream selector for media player.

* [Android]Add face capture case and etc.

* [Android][Audio]Adapt to 4.3.0 rtc sdk.

* [Android]Update rtc version.

* update sdk 4.3.0

* iOS update SDK 4.3.0

* add multi audio track case

* add face capture case

* [Windows]Adapt to 4.3.0, add audio stream selector for mediaplayer and etc.

* update sdk version to 4.3.0

* [Windows]add face capture case.

* [Android]update cpp include.

* [Android]Adapt to 4.3.0 latest version.

* [Android]update cpp include.

* [Android][Audio]Adapt to 4.3.0 latest version.

* [windows]adapte to 4.3.0 latest version and fix bugs.

* fix rawVideo takesnpe crash bug

* fix rawVideo snap shot bug

* fix medipa publish streaming bug

* [Android]try to fix NMS-17758 and etc.

* [Android]fix bugs.

* [Android]add background recording function for JoinChannelAudio case(ADC-4803).

* [Android][Audio]add background recording function for JoinChannelAudio case(ADC-4803) and perfect case.

* [Android]Adapt to 4.3.0 latest version.

* [Android]fix custom audio render api call problem(DEVEX-65).

* fix multiChannel take snapshot bug

* fix custom video render bug

* update startEchoTest

* [Windows] fix windows screen share bug.

* update sdk document address

* [Windows]Add audio echo test user case.

* [Android]Perfect basic video case and fix some bugs.

* [Android]Perfect rtmp streaming case.

* Add Camera Test Fuction

* [Android]Fix auido route bug.

* [Android]Add video echo test.

* [Android]fix echo test bug.

* [Android]perfect echo test example.

* add rtc connection state callback

* fix MediaPlayer publish stream UI bug

* fix custom capture Video  push bug

* Fix the issue of self rendering on the Inter chip

* [windows]fix spatial audio zone bug.

* fix  custom video push bug

* update precall test bug

* [Windows]add video echo test api example.

* [Windows]add basic join channel video by token example.

* [Windows]fix spatial audio zone bug(NMS-18784)

* update  start echo test

* update spatial audio method

* [Android]fix audio problem.

* [Android][Audio]fix audio problem.

* update spatial audio remote user position

* Optimize the code format

* [Android]fix NMS-19192/NMS-19194.

* [Android][Audio]fix NMS-19192.

* adapter video extension for v430 (#370)

Co-authored-by: Qiming Deng <dengqiming@agora.io>

* update rtc sdk  pod version to 4.3.0

* [windows]Update sdk download url.

---------

Co-authored-by: zhaoyongqiang <zhaoyongqiang@agora.io>
Co-authored-by: cleven <543069316@qq.com>
Co-authored-by: sync2gitee <sync2gitee@example.com>
Co-authored-by: DengQiming-private <71064074+DengQiming-private@users.noreply.github.com>
Co-authored-by: Qiming Deng <dengqiming@agora.io>
  • Loading branch information
6 people committed Feb 23, 2024
1 parent 8e0365b commit 0ec9b44
Show file tree
Hide file tree
Showing 453 changed files with 42,673 additions and 7,079 deletions.
38 changes: 38 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(git hash-object -t tree /dev/null)
fi

SCRIPT_DIR=$(dirname "$0")
SCRIPT_ABS_PATH=`cd "$SCRIPT_DIR"; pwd`


ANDROID_DIFF_FILES=`git diff --cached --name-only --diff-filter=ACM -- '*' | grep 'Android'`
if [[ "$ANDROID_DIFF_FILES" != "" ]]
then
cd Android/APIExample
echo "precommit >> current paht = $(pwd), diff files = $ANDROID_DIFF_FILES"
./gradlew -Dorg.gradle.project.commit_diff_files="$ANDROID_DIFF_FILES" checkstyle detekt
if [ $? -eq 0 ]; then
echo "precommit >> checkstyle detekt OK."
else
echo "precommit >> checkstyle detekt Failed."
exit 1
fi
else
echo "precommit >> No changing android files."
fi


2 changes: 1 addition & 1 deletion .github/workflows/gitee-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ jobs:
dst_token: ${{ secrets.GITEE_PRIVATE_TOKEN }}
force_update: true
account_type: org
shell_path: ./.github/workflows/gitee-sync-shell.sh
shell_path: ./.github/workflows/gitee-sync-shell.sh
2 changes: 1 addition & 1 deletion Android/APIExample-Audio/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ dependencies {
implementation fileTree(dir: "${localSdkPath}", include: ['*.jar', '*.aar'])
}
else{
def agora_sdk_version = "4.2.6"
def agora_sdk_version = "4.3.0"
// case 1: full single lib with voice only
implementation "io.agora.rtc:voice-sdk:${agora_sdk_version}"
// case 2: partial libs with voice only
Expand Down
6 changes: 6 additions & 0 deletions Android/APIExample-Audio/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@

<permission-group android:name="io.agora.api.example.audio.andpermission"/>

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />-->

<application
android:name=".MainApplication"
android:allowBackup="true"
Expand Down Expand Up @@ -43,6 +46,9 @@
android:windowSoftInputMode="stateAlwaysHidden"
android:screenOrientation="portrait" />

<service android:name=".examples.basic.JoinChannelAudio$LocalRecordingService"
android:foregroundServiceType="microphone"/>

</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -4,78 +4,147 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.Menu;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.navigation.Navigation;

import io.agora.api.example.R;

public class BaseFragment extends Fragment
{
/**
* The type Base fragment.
*/
public class BaseFragment extends Fragment {
/**
* The Handler.
*/
protected Handler handler;
private AlertDialog mAlertDialog;
private String mAlertMessage;
private final OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(false) {
@Override
public void handleOnBackPressed() {
onBackPressed();
}
};

@Override
public void onCreate(@Nullable Bundle savedInstanceState)
{
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler = new Handler(Looper.getMainLooper());
requireActivity().getOnBackPressedDispatcher().addCallback(onBackPressedCallback);
}

@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
onBackPressedCallback.setEnabled(true);
}

@Override
public void onDetach() {
super.onDetach();
onBackPressedCallback.setEnabled(false);
}

/**
* Show alert.
*
* @param message the message
*/
protected void showAlert(String message) {
this.showAlert(message, true);
}

/**
* Show alert.
*
* @param message the message
* @param showRepeatMsg the show repeat msg
*/
protected void showAlert(String message, boolean showRepeatMsg) {
runOnUIThread(() -> {
Context context = getContext();
if(context == null){
if (context == null) {
return;
}
if (mAlertDialog == null) {
mAlertDialog = new AlertDialog.Builder(context).setTitle("Tips")
.setPositiveButton("OK", (dialog, which) -> dialog.dismiss())
.create();
}
if (!showRepeatMsg && !TextUtils.isEmpty(mAlertMessage) && mAlertMessage.equals(message)) {
return;
}
mAlertMessage = message;
mAlertDialog.setMessage(message);
mAlertDialog.show();
});
}

protected final void showLongToast(final String msg)
{
/**
* Reset alert.
*/
protected void resetAlert() {
runOnUIThread(() -> mAlertMessage = "");
}

/**
* Show long toast.
*
* @param msg the msg
*/
protected final void showLongToast(final String msg) {
runOnUIThread(() -> {
Context context = getContext();
if(context == null){
if (context == null) {
return;
}
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
});
}

protected final void showShortToast(final String msg)
{
/**
* Show short toast.
*
* @param msg the msg
*/
protected final void showShortToast(final String msg) {
runOnUIThread(() -> {
Context context = getContext();
if(context == null){
if (context == null) {
return;
}
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
});
}

protected final void runOnUIThread(Runnable runnable){
/**
* Run on ui thread.
*
* @param runnable the runnable
*/
protected final void runOnUIThread(Runnable runnable) {
this.runOnUIThread(runnable, 0);
}

protected final void runOnUIThread(Runnable runnable, long delay){
if(handler != null && runnable != null && getContext() != null){
/**
* Run on ui thread.
*
* @param runnable the runnable
* @param delay the delay
*/
protected final void runOnUIThread(Runnable runnable, long delay) {
if (handler != null && runnable != null && getContext() != null) {
if (delay <= 0 && handler.getLooper().getThread() == Thread.currentThread()) {
runnable.run();
}else{
} else {
handler.postDelayed(() -> {
if(getContext() != null){
if (getContext() != null) {
runnable.run();
}
}, delay);
Expand All @@ -87,15 +156,19 @@ protected final void runOnUIThread(Runnable runnable, long delay){
public void onDestroy() {
super.onDestroy();
handler.removeCallbacksAndMessages(null);
if(mAlertDialog != null){
if (mAlertDialog != null) {
mAlertDialog.dismiss();
mAlertDialog = null;
}
}

@Override
public void onPrepareOptionsMenu(@NonNull Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.setGroupVisible(R.id.main_setting_group, false);
/**
* On back pressed.
*/
protected void onBackPressed() {
View view = getView();
if (view != null) {
Navigation.findNavController(view).navigateUp();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
package io.agora.api.example.common.model;

import io.agora.rtc2.IRtcEngineEventHandler.LastmileProbeResult;
import io.agora.rtc2.IRtcEngineEventHandler.LocalAudioStats;
import io.agora.rtc2.IRtcEngineEventHandler;
import io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats;
import io.agora.rtc2.IRtcEngineEventHandler.RemoteAudioStats;
import io.agora.rtc2.IRtcEngineEventHandler.RemoteVideoStats;
import io.agora.rtc2.IRtcEngineEventHandler.RtcStats;

public class StatisticsInfo {
private LocalVideoStats localVideoStats = new LocalVideoStats();
private LocalAudioStats localAudioStats = new LocalAudioStats();
private IRtcEngineEventHandler.LocalAudioStats localAudioStats = new IRtcEngineEventHandler.LocalAudioStats();
private RemoteVideoStats remoteVideoStats = new RemoteVideoStats();
private RemoteAudioStats remoteAudioStats = new RemoteAudioStats();
private RtcStats rtcStats = new RtcStats();
private IRtcEngineEventHandler.RtcStats rtcStats = new IRtcEngineEventHandler.RtcStats();
private int quality;
private LastmileProbeResult lastMileProbeResult;
private IRtcEngineEventHandler.LastmileProbeResult lastMileProbeResult;

public void setLocalVideoStats(LocalVideoStats localVideoStats) {
this.localVideoStats = localVideoStats;
}

public void setLocalAudioStats(LocalAudioStats localAudioStats) {
public void setLocalAudioStats(IRtcEngineEventHandler.LocalAudioStats localAudioStats) {
this.localAudioStats = localAudioStats;
}

Expand All @@ -32,7 +30,7 @@ public void setRemoteAudioStats(RemoteAudioStats remoteAudioStats) {
this.remoteAudioStats = remoteAudioStats;
}

public void setRtcStats(RtcStats rtcStats) {
public void setRtcStats(IRtcEngineEventHandler.RtcStats rtcStats) {
this.rtcStats = rtcStats;
}

Expand Down Expand Up @@ -162,7 +160,7 @@ public String getLastMileResult() {
return stringBuilder.toString();
}

public void setLastMileProbeResult(LastmileProbeResult lastmileProbeResult) {
public void setLastMileProbeResult(IRtcEngineEventHandler.LastmileProbeResult lastmileProbeResult) {
this.lastMileProbeResult = lastmileProbeResult;
}

Expand Down
Loading

0 comments on commit 0ec9b44

Please sign in to comment.