Skip to content

Commit 9af7f51

Browse files
author
Arlin
committed
[iOS] Change stop way of screen share to avoid alert view showing
1 parent 69db0f7 commit 9af7f51

5 files changed

Lines changed: 49 additions & 9 deletions

File tree

iOS/APIExample.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@
106106
578AA65C259A05B200D7CAD9 /* CreateDataStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 578AA65B259A05B200D7CAD9 /* CreateDataStream.swift */; };
107107
57B7FC83259C313200407BE1 /* RawAudioData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B7FC82259C313200407BE1 /* RawAudioData.swift */; };
108108
57B7FC89259C599100407BE1 /* RawAudioData.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 57B7FC8B259C599100407BE1 /* RawAudioData.storyboard */; };
109+
670709A5282659B100A72FD6 /* SampleHandlerUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 670709A4282659B100A72FD6 /* SampleHandlerUtil.m */; };
110+
670709A6282659B100A72FD6 /* SampleHandlerUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 670709A4282659B100A72FD6 /* SampleHandlerUtil.m */; };
109111
67B8C79E2804081F00195106 /* RawVideoData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B8C79D2804081F00195106 /* RawVideoData.swift */; };
110112
67B8C7A7280511CB00195106 /* MediaUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 67B8C7A6280511CB00195106 /* MediaUtils.m */; };
111113
67B8C7A82805642300195106 /* RawVideoData.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 67B8C7AA2805642300195106 /* RawVideoData.storyboard */; };
@@ -314,6 +316,8 @@
314316
57B7FC82259C313200407BE1 /* RawAudioData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RawAudioData.swift; sourceTree = "<group>"; };
315317
57B7FC8A259C599100407BE1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/RawAudioData.storyboard; sourceTree = "<group>"; };
316318
57B7FC8E259C599700407BE1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/RawAudioData.strings"; sourceTree = "<group>"; };
319+
670709A3282659B100A72FD6 /* SampleHandlerUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SampleHandlerUtil.h; sourceTree = "<group>"; };
320+
670709A4282659B100A72FD6 /* SampleHandlerUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SampleHandlerUtil.m; sourceTree = "<group>"; };
317321
67B8C79D2804081F00195106 /* RawVideoData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RawVideoData.swift; sourceTree = "<group>"; };
318322
67B8C7A5280511CB00195106 /* MediaUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaUtils.h; sourceTree = "<group>"; };
319323
67B8C7A6280511CB00195106 /* MediaUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MediaUtils.m; sourceTree = "<group>"; };
@@ -457,6 +461,8 @@
457461
0339BE9F25205B7F007D4FDD /* SampleHandler.swift */,
458462
0339BEA125205B7F007D4FDD /* Info.plist */,
459463
0339BEBB25205D1A007D4FDD /* Agora-ScreenShare-Extension-Bridging-Header.h */,
464+
670709A3282659B100A72FD6 /* SampleHandlerUtil.h */,
465+
670709A4282659B100A72FD6 /* SampleHandlerUtil.m */,
460466
);
461467
path = "Agora-ScreenShare-Extension";
462468
sourceTree = "<group>";
@@ -1160,6 +1166,7 @@
11601166
0339BEC72520A612007D4FDD /* GlobalSettings.swift in Sources */,
11611167
0339BEC525206635007D4FDD /* KeyCenter.swift in Sources */,
11621168
0339BEC425205D1A007D4FDD /* AgoraAudioTube.mm in Sources */,
1169+
670709A6282659B100A72FD6 /* SampleHandlerUtil.m in Sources */,
11631170
0339BEC325205D1A007D4FDD /* AgoraUploader.swift in Sources */,
11641171
0339BEA025205B7F007D4FDD /* SampleHandler.swift in Sources */,
11651172
8B98CAA42664914D001B5454 /* AgoraAudioProcessing.mm in Sources */,
@@ -1172,6 +1179,7 @@
11721179
files = (
11731180
03FB5B3725642E7C00F04ED0 /* LiveStreaming.swift in Sources */,
11741181
036CBA47251990B400D74FAD /* AgoraCustomEncryption.h in Sources */,
1182+
670709A5282659B100A72FD6 /* SampleHandlerUtil.m in Sources */,
11751183
033A9EFF252D61E200BC26E1 /* CustomVideoSourceMediaIO.swift in Sources */,
11761184
036CBA3F2519186300D74FAD /* StreamEncryption.swift in Sources */,
11771185
0339BE9625203293007D4FDD /* ScreenShare.swift in Sources */,

iOS/Agora-ScreenShare-Extension/Agora-ScreenShare-Extension-Bridging-Header.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44

55
#import "AgoraAudioTube.h"
66
#import "AgoraAudioProcessing.h"
7+
#import "SampleHandlerUtil.h"
78
#import <AgoraReplayKitExtension/AgoraReplayKitExt.h>

iOS/Agora-ScreenShare-Extension/SampleHandler.swift

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,19 @@
99
import ReplayKit
1010

1111
class SampleHandler: RPBroadcastSampleHandler {
12-
1312
override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
14-
print("broadcastStarted")
1513
AgoraReplayKitExt.shareInstance().start(self)
1614
}
1715

1816
override func broadcastPaused() {
19-
print("broadcastPaused")
2017
AgoraReplayKitExt.shareInstance().pause()
2118
}
2219

2320
override func broadcastResumed() {
24-
print("broadcastResumed")
2521
AgoraReplayKitExt.shareInstance().resume()
2622
}
2723

2824
override func broadcastFinished() {
29-
print("broadcastFinished")
3025
AgoraReplayKitExt.shareInstance().stop()
3126
}
3227

@@ -40,16 +35,16 @@ extension SampleHandler: AgoraReplayKitExtDelegate {
4035
print("broadcastFinished:\(reason.rawValue)")
4136
switch reason {
4237
case .connectFail:
43-
let error = NSError(domain: "", code: 0, userInfo: nil)
38+
let error = NSError(domain: "ConnectFail", code: 0, userInfo: nil)
4439
finishBroadcastWithError(error)
4540
break
4641
case .disconnect:
47-
let error = NSError(domain: "", code: 0, userInfo: nil)
42+
let error = NSError(domain: "Disconnect", code: 0, userInfo: nil)
4843
finishBroadcastWithError(error)
4944
break
5045
case .initiativeStop:
51-
let error = NSError(domain: "", code: 0, userInfo: nil)
52-
finishBroadcastWithError(error)
46+
// Pass nil in objc mathod to avoid showing alert view
47+
SampleHandlerUtil.finishBroadcast(withNilError: self)
5348
break
5449
default: break
5550
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// SampleHandlerUtil.h
3+
// APIExample
4+
//
5+
// Created by Arlin on 2022/5/7.
6+
// Copyright © 2022 Agora Corp. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import <ReplayKit/ReplayKit.h>
11+
12+
NS_ASSUME_NONNULL_BEGIN
13+
14+
@interface SampleHandlerUtil : NSObject
15+
+ (void)finishBroadcastWithNilError:(nullable RPBroadcastSampleHandler *)sampleHandler;
16+
@end
17+
18+
NS_ASSUME_NONNULL_END
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// SampleHandlerUtil.m
3+
// APIExample
4+
//
5+
// Created by Arlin on 2022/5/7.
6+
// Copyright © 2022 Agora Corp. All rights reserved.
7+
//
8+
9+
#import "SampleHandlerUtil.h"
10+
11+
@implementation SampleHandlerUtil
12+
+ (void)finishBroadcastWithNilError:(nullable RPBroadcastSampleHandler *)sampleHandler {
13+
#pragma clang diagnostic push
14+
#pragma clang diagnostic ignored "-Wnonnull"
15+
[sampleHandler finishBroadcastWithError:nil];
16+
#pragma clang diagnostic pop
17+
}
18+
@end

0 commit comments

Comments
 (0)