外部來源¶
ArctosLinks.Media 提供了一套 API 來接收外部來源的影像與聲音資料,包含獲取當前媒體輸入源、
切換媒體輸入源、傳入外部影像資料、以及傳入外部聲音資料。
獲取當前媒體輸入源¶
功能:取得當前媒體輸入源,來自 SDK 內部或外部
返回值:當前媒體輸入源,若是使用時發生例外狀況,則返回錯誤。
設定媒體輸入源¶
功能:設定媒體輸入源
參數:
- inputSource,類型為 InputSource
返回值:設定後的媒體輸入源,若是使用時發生例外狀況,則返回錯誤。
傳入外部影像資料¶
功能:傳入外部影像資料
-
iOS:影像格式為 CIImage
-
Android:影像格式為 Y、U、V,其中各自的參數:
-
width:影像的寬,格式為整數
-
height:影像的高,格式為整數
-
y:Y plane 的資料,格式為 ByteArray
-
u:U plane 的資料,格式為 ByteArray
-
v:V plane 的資料,格式為 ByteArray
-
返回值:若是使用時發生例外狀況,則返回錯誤。
-
import com.arctos.sdk.links.core.application.ArctosLinks
suspend fun setMediaInputSource(inputSource: InputSource, context: Context, lifecycleOwner: LifecycleOwner) {
runCatching {
withContext(Dispatchers.Main) {
ArctosLinks.getInstance(context).mediaManager.setMediaInputSource(InputSource.SDK, context, lifecycleOwner)
.onSuccess { input ->
...
}
.onFailure {
...
}
}
}
}
傳入外部聲音資料¶
功能:傳入外部聲音資料
-
iOS:聲音格式為 AVAudioPCMBuffer
-
Android:聲音格式為 PCM,聲音參數為:
-
pcm: PCM 資料,格式為 ShortArray
-
channel: 聲道數,格式為整數
-
sampleRate: 聲音採樣率,格式為整數
-
返回值:若是使用時發生例外狀況,則返回錯誤。
-
import ArctosLinks
let audioBuffer: AVAudioPCMBuffer = ... // Generate your AVAudioPCMBuffer.
ArctosLinks.Media.sendAudioInput(audioPCMBuffer: audioBuffer) { result in
switch result {
case .success():
print("Audio input sent successfully.")
case .failure(let error):
print("Failed to send audio input. Error: \(error.localizedDescription)")
}
}
類型¶
枚舉類別¶
媒體輸入源 (InputSource)¶
功能:用於列舉變更媒體輸入源時,可以選擇的來源
-
iOS:格式為 enum InputSource,其成員包含:
-
thisDevice
-
others
-
-
Andorid:格式為 enum InputSource,其成員包含:
-
SDK
-
EXTERNAL
-