API目錄
音視頻處理模塊介紹
音視頻處理接口是Kalay SDK針對(duì)iOS平臺(tái)提供的核心媒體能力接口集,主要用于視頻解碼配置、音頻監(jiān)聽/對(duì)講控制、視頻丟幀策略設(shè)置、本地錄像及畫面截圖等音視頻相關(guān)操作,是實(shí)現(xiàn)設(shè)備音視頻交互的關(guān)鍵能力支撐。
KY_SetHWDecode
功能描述:為指定的視頻通道設(shè)置解碼方式(硬件解碼或軟件解碼),硬件解碼可提升性能并降低CPU占用,軟件解碼兼容性更好。
接口定義
- (void)KY_SetHWDecode:(NSInteger)channel
isHWDecode:(BOOL)isHWDecode;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要設(shè)置的視頻通道號(hào),通常為 0。 |
| isHWDecode | BOOL | YES 表示啟用硬件解碼,NO 表示啟用軟件解碼。 |
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接生效。
返回碼
該接口無返回值,解碼方式的設(shè)置結(jié)果可通過實(shí)際視頻播放效果驗(yàn)證。
代碼示例
// 為 _mainChannel 指定的通道設(shè)置為軟件解碼
[self.camera KY_SetHWDecode:_mainChannel isHWDecode:NO];
KY_SetDecodeDelayTime
功能描述:設(shè)置視頻解碼的最大延遲時(shí)間和每幀的解碼時(shí)間間隔,用于平衡視頻播放的流暢度和實(shí)時(shí)性。
接口定義
- (void)TK_setDecodeDelayTime:(NSInteger)delayTime
durationTime:(NSInteger)durationTime
channel:(NSInteger)channel;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| delayTime | NSInteger | 最大延遲時(shí)間,單位為毫秒 (ms)。 |
| durationTime | NSInteger | 解碼時(shí)間間隔,單位為毫秒 (ms),取值范圍為 0 ~ 30。 |
| channel | NSInteger | 要設(shè)置的視頻通道號(hào),通常為 0。 |
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接生效。
返回碼
該接口無返回值,參數(shù)設(shè)置的有效性可通過視頻播放的流暢度和延遲感驗(yàn)證。
代碼示例
// 設(shè)置最大延遲為 1500ms,解碼間隔為 15ms
[self.camera TK_setDecodeDelayTime:1500 durationTime:15 channel:0];
KY_StartListen
功能描述:開啟或關(guān)閉音頻監(jiān)聽功能(即播放來自設(shè)備端的聲音),是實(shí)現(xiàn)單向音頻監(jiān)聽的核心接口。
接口定義
- (void)KY_StartListen:(NSInteger)channel
isOn:(BOOL)isOn
isPlayer:(BOOL)isPlayer;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要操作的音頻通道號(hào),通常為 0。 |
| isOn | BOOL | YES 表示開啟監(jiān)聽,NO 表示關(guān)閉監(jiān)聽。 |
| isPlayer | BOOL | 是否解碼并播放音頻,默認(rèn)為 true。 |
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接生效。
返回碼
該接口無返回值,功能開啟/關(guān)閉狀態(tài)可通過是否能聽到設(shè)備端聲音驗(yàn)證。
代碼示例
// 開啟監(jiān)聽功能
[self.camera KY_StartListen:_mainChannel isOn:YES isPlayer:YES];
KY_StartTalk
功能描述:開啟或關(guān)閉音頻對(duì)講功能(即向設(shè)備端發(fā)送聲音),是實(shí)現(xiàn)雙向語(yǔ)音對(duì)講的核心接口。
接口定義
- (void)KY_StartTalk:(NSInteger)channel
isResend:(BOOL)isResend
isOn:(BOOL)isOn;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要操作的音頻通道號(hào),通常為 0。 |
| isResend | BOOL | YES 表示啟用重傳機(jī)制,以提高弱網(wǎng)環(huán)境下的通話質(zhì)量。 |
| isOn | BOOL | YES 表示開啟對(duì)講,NO 表示關(guān)閉對(duì)講。 |
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接生效。
返回碼
該接口無返回值,對(duì)講功能狀態(tài)可通過設(shè)備端是否能聽到聲音驗(yàn)證。
代碼示例
// 開啟對(duì)講功能,并啟用重傳機(jī)制
[self.camera KY_StartTalk:self.mainChannel isResend:YES isOn:YES];
KY_setVideoDropModeWithChannel
功能描述:設(shè)置當(dāng)視頻解碼緩存達(dá)到最大值時(shí)的丟幀策略,用于在網(wǎng)絡(luò)不佳時(shí)維持視頻播放的流暢度。
接口定義
- (void)KY_setVideoDropModeWithChannel:(NSInteger)channel
mode:(DropMode)mode;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要設(shè)置的視頻通道號(hào),通常為 0。 |
| mode | DropMode | 丟幀模式枚舉:
|
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接生效。
返回碼
該接口無返回值,丟幀策略的效果可通過弱網(wǎng)環(huán)境下的視頻播放流暢度驗(yàn)證。
代碼示例
// 設(shè)置當(dāng)延遲過高時(shí),丟棄 P 幀
[self.camera KY_setVideoDropModeWithChannel:0 mode:0];
KY_StartRecording
功能描述:開啟或關(guān)閉本地錄像功能,將視頻流(可選音頻)保存為文件,支持自定義文件名和錄制時(shí)長(zhǎng)。
接口定義
- (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 | 要錄制的視頻通道號(hào),通常為 0。 |
| fileName | NSString * | 保存到沙盒的文件名稱。如果為 nil 或空字符串,SDK 可能會(huì)自動(dòng)生成文件名。 |
| durationTime | NSTimeInterval | 錄像持續(xù)時(shí)間,單位為秒。默認(rèn)值為 3 分鐘。如果設(shè)置為 0,則表示持續(xù)錄制直到手動(dòng)停止。 |
| isOn | BOOL | YES 表示開始錄制,NO 表示停止錄制。 |
| isRecordAudio | BOOL | YES 表示同時(shí)錄制音頻,NO 表示只錄制視頻。 |
| success | block | 操作成功時(shí)的回調(diào)。 |
| failure | block | 操作失敗時(shí)的回調(diào),包含一個(gè) NSError 對(duì)象。 |
回調(diào)說明
操作結(jié)果通過
success 和 failure 回調(diào)異步返回:- success:錄制開啟/停止操作成功時(shí)觸發(fā)
- failure:操作失敗時(shí)觸發(fā),返回的NSError包含具體錯(cuò)誤信息
返回碼
該接口無直接返回值,操作結(jié)果通過回調(diào)函數(shù)的觸發(fā)狀態(tài)判斷:
- success回調(diào)觸發(fā):操作成功
- failure回調(diào)觸發(fā):操作失敗,錯(cuò)誤信息可從NSError對(duì)象中獲取
代碼示例
// 開始錄制,錄制音頻,使用默認(rèn)文件名和時(shí)長(zhǎng)
[self.camera KY_StartRecording:_mainChannel
fileName:@""
durationTime:0
isOn:YES
isRecordAudio:YES
success:^{
NSLog(@"錄像已成功開始。");
}
failure:^(NSError * _Nonnull error) {
NSLog(@"錄像開始失敗: %@", error.localizedDescription);
}];
// ... 一段時(shí)間后 ...
// 停止錄制
[self.camera KY_StartRecording:_mainChannel
fileName:@""
durationTime:0
isOn:NO
isRecordAudio:YES
success:^{
NSLog(@"錄像已成功停止。");
}
failure:^(NSError * _Nonnull error) {
NSLog(@"錄像停止失敗: %@", error.localizedDescription);
}];
KY_Snapshot
功能描述:截取當(dāng)前視頻畫面并保存為圖片文件,支持自定義保存文件名。
接口定義
- (void)KY_Snapshot:(NSInteger)channel
fileName:(NSString * _Nullable)fileName;
參數(shù)說明
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| channel | NSInteger | 要截取畫面的視頻通道號(hào),通常為 0。 |
| fileName | NSString * | 保存到沙盒的圖片文件名稱(不含路徑)。如果為 nil 或空字符串,SDK 可能會(huì)自動(dòng)生成文件名。 |
回調(diào)說明
該接口無回調(diào)函數(shù),調(diào)用后直接執(zhí)行截圖操作。
返回碼
該接口無返回值,截圖操作的結(jié)果可通過檢查沙盒中是否生成對(duì)應(yīng)的圖片文件驗(yàn)證。
代碼示例
// 截取當(dāng)前畫面,使用默認(rèn)文件名
[self.camera KY_Snapshot:0 fileName:@""];
