API目錄
音視頻處理模塊介紹
音視頻處理接口是TUTK P2P SDK針對iOS平臺提供的核心功能接口集,主要用于視頻解碼方式設置、解碼延遲調(diào)整、音頻監(jiān)聽/對講控制、視頻丟幀策略配置、本地錄像及畫面截圖等關鍵場景,為APP實現(xiàn)音視頻實時交互提供標準化調(diào)用方式。
KY_SetHWDecode
功能描述:為指定的視頻通道設置解碼方式(硬件解碼或軟件解碼)。
接口定義
- (void)KY_SetHWDecode:(NSInteger)channel
isHWDeocde:(BOOL)isHWDeocde;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要設置的視頻通道號,通常為 0。 |
| isHWDecode | BOOL | YES 表示啟用硬件解碼,NO 表示啟用軟件解碼。 |
回調(diào)說明
暫無額外回調(diào),該接口為同步執(zhí)行接口
返回碼
該接口無返回值,執(zhí)行失敗通常表現(xiàn)為解碼方式未生效,需檢查通道號有效性
代碼示例
// 為 _mainChannel 指定的通道設置為軟件解碼
[self.camera KY_SetHWDecode:_mainChannel isHWDeocde:NO];
KY_SetDecodeDelayTime
功能描述:設置視頻解碼的最大延遲時間和每幀的解碼時間間隔,用于平衡流暢度和實時性。
接口定義
- (void)TK_setDecodeDelayTime:(NSInteger)delayTime
durationTime:(NSInteger)durationTime
channel:(NSInteger)channel;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| delayTime | NSInteger | 最大延遲時間,單位為毫秒 (ms)。 |
| durationTime | NSInteger | 解碼時間間隔,單位為毫秒 (ms),取值范圍為 0 ~ 30。 |
| channel | NSInteger | 要設置的視頻通道號,通常為 0。 |
回調(diào)說明
暫無額外回調(diào),該接口為同步執(zhí)行接口
返回碼
該接口無返回值,參數(shù)超出范圍會導致設置不生效,建議設置前校驗參數(shù)合法性
代碼示例
// 設置最大延遲為 1500ms,解碼間隔為 15ms
[self.camera TK_setDecodeDelayTime:1500 durationTime:15 channel:0];
KY_StartListen
功能描述:開啟或關閉音頻監(jiān)聽功能(即播放來自設備端的聲音)。
接口定義
- (void)KY_StartListen:(NSInteger)channel
isOn:(BOOL)isOn
isPlayer:(BOOL)isPlayer;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要操作的音頻通道號,通常為 0。 |
| isOn | BOOL | YES 表示開啟監(jiān)聽,NO 表示關閉監(jiān)聽。 |
| isPlayer | BOOL | 是否解碼并播放音頻,默認為 true。 |
回調(diào)說明
暫無額外回調(diào),監(jiān)聽狀態(tài)變更可通過音頻播放狀態(tài)自行判斷
返回碼
該接口無返回值,操作失敗會導致音頻監(jiān)聽功能未按預期開啟/關閉
代碼示例
// 開啟監(jiān)聽功能
[self.camera KY_StartListen:_mainChannel isOn:YES isPlayer:YES];
KY_StartTalk
功能描述:開啟或關閉音頻對講功能(即向設備端發(fā)送聲音)。
接口定義
- (void)KY_StartTalk:(NSInteger)channel
isResend:(BOOL)isResend
isOn:(BOOL)isOn;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要操作的音頻通道號,通常為 0。 |
| isResend | BOOL | YES 表示啟用重傳機制,以提高弱網(wǎng)環(huán)境下的通話質(zhì)量。 |
| isOn | BOOL | YES 表示開啟對講,NO 表示關閉對講。 |
回調(diào)說明
暫無額外回調(diào),對講狀態(tài)可通過麥克風權(quán)限及網(wǎng)絡狀態(tài)綜合判斷
返回碼
該接口無返回值,弱網(wǎng)環(huán)境下啟用重傳機制可降低對講失敗概率
代碼示例
// 開啟對講功能,并啟用重傳機制
[self.camera KY_StartTalk:self.mainChannel isResend:YES isOn:YES];
KY_setVideoDropModeWithChannel
功能描述:設置當視頻解碼緩存達到最大值時的丟幀策略,用于在網(wǎng)絡不佳時維持流暢度。
接口定義
- (void)KY_setVideoDropModeWithChannel:(NSInteger)channel
mode:(DropMode)mode;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要設置的視頻通道號,通常為 0。 |
| mode | DropMode | 丟幀模式枚舉:
|
回調(diào)說明
暫無額外回調(diào),丟幀策略生效可通過視頻流暢度直觀判斷
返回碼
該接口無返回值,傳入非標準mode值會使用默認丟幀策略(mode=0)
代碼示例
// 設置當延遲過高時,丟棄 P 幀
[self.camera KY_setVideoDropModeWithChannel:0 mode:0];
KY_StartRecording
功能描述:開啟或關閉本地錄像功能,將視頻流(可選音頻)保存為文件。
接口定義
- (void)KY_StartRecording:(NSInteger)channel
fileName:(NSString * _Nullable)fileName
durationTime:(NSTimeInterval)durationTime
isOn:(BOOL)isOn
isRecordAudio:(BOOL)isRecordAudio
success:(void (^ _Nonnull)(void))success
failure:(void (^ _Nonnull)(NSError * _Nonnull))failure;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要錄制的視頻通道號,通常為 0。 |
| fileName | NSString * | 保存到沙盒的文件名稱。如果為 nil 或空字符串,SDK 可能會自動生成文件名。 |
| durationTime | NSTimeInterval | 錄像持續(xù)時間,單位為秒。默認值為 3 分鐘。如果設置為 0,則表示持續(xù)錄制直到手動停止。 |
| isOn | BOOL | YES 表示開始錄制,NO 表示停止錄制。 |
| isRecordAudio | BOOL | YES 表示同時錄制音頻,NO 表示只錄制視頻。 |
| success | block | 操作成功時的回調(diào)。 |
| failure | block | 操作失敗時的回調(diào),包含一個 NSError 對象。 |
回調(diào)說明
操作結(jié)果通過success/failure block返回,failure block包含
NSError對象,可解析錯誤原因返回碼
失敗信息可通過
NSError.code 查看,常見錯誤碼對應存儲權(quán)限不足、通道號無效、文件名稱非法等代碼示例
// 開始錄制,錄制音頻,使用默認文件名和時長
[self.camera KY_StartRecording:_mainChannel
fileName:@""
durationTime:0
isOn:YES
isRecordAudio:YES
success:^{
NSLog(@"錄像已成功開始。");
}
failure:^(NSError * _Nonnull error) {
NSLog(@"錄像開始失敗: %@", error.localizedDescription);
}];
// ... 一段時間后 ...
// 停止錄制
[self.camera KY_StartRecording:_mainChannel
fileName:@""
durationTime:0
isOn:NO
isRecordAudio:YES
success:^{
NSLog(@"錄像已成功停止。");
}
failure:^(NSError * _Nonnull error) {
NSLog(@"錄像停止失敗: %@", error.localizedDescription);
}];
KY_Snapshot
功能描述:截取當前視頻畫面并保存為圖片文件。
接口定義
- (void)KY_Snapshot:(NSInteger)channel
fileName:(NSString * _Nullable)fileName;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要截取畫面的視頻通道號,通常為 0。 |
| fileName | NSString * | 保存到沙盒的圖片文件名稱(不含路徑)。如果為 nil 或空字符串,SDK 可能會自動生成文件名。 |
回調(diào)說明
暫無額外回調(diào),截圖結(jié)果可通過沙盒文件是否生成判斷
返回碼
該接口無返回值,截圖失敗通常因通道無視頻流、存儲權(quán)限不足或文件名稱非法導致
代碼示例
// 截取當前畫面,使用默認文件名
[self.camera KY_Snapshot:0 fileName:@""];
