Callbacks
Overview
RemonCast, RemonCallμ κ°λ¨ν μ½λ λ§μΌλ‘ ν΅μ λ° λ°©μ‘μ΄ κ°λ₯ ν©λλ€. μ¬μ©μμ νμμ λ°λΌ UIμ²λ¦¬ λ° μΆκ° μμ
μ΄ νμν κ²½μ°κ° λ°μ ν©λλ€. μλμ λ€μν Callbackμ ν΅ν΄ λ³΄λ€ μΈλΆμ μΈ κ°λ°μ΄ κ°λ₯ν©λλ€.
μλλ‘μ΄λ 2.4.13, iOS 2.6.9 λ²μ λΆν° μ½λ°±μ λͺ¨λ UI Thread μμ νΈμΆλ©λλ€. μ΄μ λ²μ μ κ²½μ° UI μμμ λ³κ²½ μ UI Thread μ κ΄λ ¨ν μ²λ¦¬λ₯Ό μΆκ°ν΄μΌ ν©λλ€.
λ°©μ‘κ³Ό ν΅μ μ κ°κ°μ μ ν©ν μ΄λ²€νΈμ νλ¦μ κ°μ§κ³ μμ΅λλ€. μ΄λ₯Ό μμλλ©΄ Callbackλ₯Ό νμ©νλλ° λμμ΄ λ©λλ€. μ΄μ λν λ΄μ©μ μλλ₯Ό μ°Έκ³ νμΈμ.
FlowChannelBasics
onInit(token) / onInit()
onInitμ SDKκ° μΈν°λ·μ ν΅ν΄ RemoteMonster μλ²μ μ μμ μΌλ‘ μ μνμ¬ RemoteMonsterμ λ°©μ‘, ν΅μ μΈνλΌλ₯Ό μ¬μ©ν μ€λΉκ° μλ£λ μνλ₯Ό μλ―Έν©λλ€. μ΄λ μΈμ¦ μ λ³΄μΈ tokenμ λλ € λ°μ΅λλ€. λλ€μμ κ²½μ° μ¬μ©ν μΌμ΄ μμΌλ©° λλ²κΉ
μ νμ©νκ² λ©λλ€.
(Android μ κ²½μ° token μ μ λ¬νμ§ μμ΅λλ€.)
const listener = {
onInit(token) {
// Do something
}
}remonCast.onInit(() -> {
// Do something
});remonCast.onInit {
}remonCast.onInit { (token) in
// Do something
}[remonCast onInitWithBlock:^{
// Do something
}];onCreate(channelId) - livecast
λ°©μ‘μμ μ‘μΆμλ§ μ¬μ©ν©λλ€. μ‘μΆμκ° create()μ ν΅ν΄ λ°©μ‘μ μ μμ μΌλ‘ μμ±νμ¬ μ‘μΆμ΄ λ λμ
λλ€.
onCreateλ μΈμλ‘ channelIdλ₯Ό λ겨μ€λλ€. μ΄κ²μ μ΄ λ°©μ κ³ μ ν ꡬλΆμλ‘ μμ²μλ€μ΄ μ΄ channelIdλ₯Ό ν΅ν΄ μ μνμ¬ λ°©μ‘μ λ³΄κ² λ©λλ€.
onJoin() - livecast
λ°©μ‘μμ μμ²μλ§ μ¬μ©λ©λλ€. μμ²μκ° join()μ ν΅ν΄ μ°κ²°μ΄ μλ£ λν λ―Έλμ΄ μμ²μ΄ κ°λ₯ν΄ μ‘μ λ νΈμΆ λ©λλ€.
onConnect(channelId) - communication
ν΅μ μμλ§ μ¬μ©λ©λλ€. μ€μ§μ μΌλ‘ μ±λμ λ§λ€μ΄ ν΅νλ₯Ό μμ²νλ Callerμ΄κ±°λ λ§λ€μ΄μ§ μ±λμ μ μνμ¬ μμ²μ μλ΅νλ CalleeμΌλμ λμμ λ¬λ¦¬ νλ κ²½μ°κ° λ§μΌλ©° κ°λ°μκ° Caller, Calleeμ¬λΆμ λν μνλ₯Ό κ΄λ¦¬ν΄μΌ ν©λλ€.
Callerλ connect()μ ν΅ν΄ μ±λμ μλ‘ λ§λ€κ³ μλλ°©μ΄ μ
μ₯νκΈ°λ₯Ό κΈ°λ€λ¦½λλ€.
Calleeλ connect()μ ν΅ν΄ μ΄λ―Έ λ§λ€μ΄μ§ μ±λμ μ μνκ² λ©λλ€. μ΄λ λ§λ€μ΄μ§ μ±λμ channelIdλ₯Ό νμλ‘ νμνκ² λ©λλ€. μ μμ μΌλ‘ μλ£λλ©΄ onConnectκ° μκΈ°λ, CalleeλΌλ©΄ κ³§λ°λ‘ λ°μνλ onCompleteλ₯Ό μ¬μ©νλκ²μ κΆμ₯ν©λλ€.
onComplete() - communication
ν΅μ μλ§ μ¬μ©λ©λλ€. μνΈκ° μ°κ²°μ΄ μλ£ λν λ―Έλμ΄ μ μ‘μ΄ κ°λ₯ν΄ μ‘μ λ νΈμΆ λ©λλ€.
onClose()
μ¬μ©μκ° λͺ
μμ μΌλ‘ close() ν¨μλ₯Ό νΈμΆ νκ±°λ μλλ°©μ΄ close()ν¨μλ₯Ό νΈμΆ νμλ λλ λ€νΈμν¬ μ΄μ λ±μΌλ‘ λμ΄μ μ°κ²°μ μ μ§ νκΈ° μ΄λ €μΈ λ λ± μ°κ²°μ΄ μ’
λ£ λλ©΄ νΈμΆ λλ©°, Remonμμ μ¬μ©νλ μμλ€ ν΄μ κ° μλ£λ μνμ
λλ€.
onError(error)
Remonμ΄ λμ μ€μ μλ¬κ° λ°μ ν λ νΈμΆ λ©λλ€.
N/A
Error μ½λμ λν΄ μμΈν μκ³ μΆμΌμλ©΄ μλ λ΄μ©μ μ°Έκ³ νμκΈ° λ°λλλ€.
ErroronRetry(completed) - Beta
Remon μ΄ λμ μ€μ λ€νΈμν¬ νκ²½μ λ³κ²½μ΄ κ°μ§λλ©΄ μ¬μ°κ²°μ μλ ν©λλ€. μ΄ λ μ¬μ°κ²° μνλ₯Ό μλ €μ£Όλ onRetry() ν¨μκ° νΈμΆ λλ©° μ¬μ°κ²°μ΄ μλκ° μμ λ λλ completed κ°μ falseλ‘ νΈμΆ λκ³ , μ¬μ°κ²°μ΄ μλ£ λλ©΄ completed κ°μ trueλ‘ νΈμΆ λ©λλ€. λ§μ½ μ¬μ°κ²° μλμ€ μ¬μ°κ²°μ΄ μ€ν¨ νκ±°λ μλ¬κ° λ°μ νλ€λ©΄ onRetry()κ° μλ onError() λλ onClose()κ° νΈμΆ λ μλ μμ΅λλ€.
N/A
N/A
Advanced
onRemoteVideoSizeChanged(view, size)/onLocalVideoSizeChanged(view, size)
μμμ μ¬μ΄μ¦λ λ€νΈμν¬ μνμ λ°λΌ μμκ°κ° λ³ν νλ©°, μμμ λΉμ¨μ μμμ₯μΉμ λ°λΌ λ€λ¦
λλ€. μμ μ‘μΆμκ° κ³ μ λ μ¬μ΄μ¦μ λΉμ¨ 보μ₯ν΄ μ£Όμ§ μλ νκ²½μ΄λΌλ©΄ onRemoteVideoSizeChangedμ onLocalVideoSizeChanged ν¨μλ₯Ό ꡬν νμ¬ λ³ν νλ μμν¬κΈ°μ λ°μ νλλ‘ κ΅¬νν©λλ€.
N/A
N/A
μλμ λ§ν¬λ₯Ό ν΅ν΄ ꡬ체μ μΈ μμ© μμλ₯Ό νμΈν μ μμ΅λλ€.
iOS - Mediaμλμ λ§ν¬λ₯Ό ν΅ν΄ ꡬ체μ μΈ μμ© μμλ₯Ό νμΈν μ μμ΅λλ€.
iOS - MediaonStat(report)
ν΅μ / λ°©μ‘ μνλ₯Ό μμμλ reportλ₯Ό λ°μ΅λλ€. reportλ μ¬μ©μκ° remon μμ±μ μ€μ ν statIntervalκ°κ²© λ§λ€ λ€μ΄μ€κ² λ©λλ€. λ€νΈμν¬ μν©λ±μ λ°λ₯Έ λ―Έλμ΄ νμ§μ λνλμΌλ‘ μ¬μ©μμκ² λ‘λ© UI μ²λ¦¬λ± μλ΄λ₯Ό νλλ° μ μ©ν©λλ€.
μ΄λ, λ€μ΄μ€λ κ°μ μμ λ° μμ± ν΅ν μ€μ νμ¬ ν΅νμ νμ§μ΄ μ΄λ νμ§λ₯Ό ν΅ν©νμ¬ 1μμ 5κΉμ§μ λ¨κ³λ‘ νμΈν μ μμ΅λλ€.
μ¬μ©μλ κ°νΉ μμ νΉμ μλλ°©μ λ€νΈμν¬ λ¬Έμ λ‘ μΈνμ¬ ν΅ν νμ§μ΄ μμ’κ±°λ λμ΄μ§ μν©μμλ μλΉμ€μ λ¬Έμ λΌκ³ μκ°νκ³ λΆλ§μ μ κΈ°ν μ μμ΅λλ€. λλ¬Έμ μ¬μ©μμ λ¬Έμ κ° λ€νΈμν¬μ λ¬Έμ μμ μ¬μ μ μλ €μ£Όκ±°λ λ€μν UI μ²λ¦¬κ° κ°λ₯ν©λλ€.
νμ¬ μ΄ ν΅ν νμ§ μ 보λ 5μ΄μ νλ²μ© λ°μ μ μμ΅λλ€.
λ¨κ³
νμ§
λΉκ³
1
λ§€μ° μ’μ
2
μ’μ
3
λμ¨
4
λ§€μ° λμ¨
5
λ°©μ‘, ν΅ν λΆλ₯
Remon κ°μ²΄λ₯Ό μμ±ν λ μ
λ ₯ μΈμλ‘ λ£λ listenerμ λ©μλ μ€ onStat() μ ꡬννμ¬ νμ§ μ 보λ₯Ό λ°μ μ μμ΅λλ€. μμ resultμμ λ°μ μ μλ μ¬λ¬ μ 보 μ€ result.rating μ΄ λ°λ‘ λ€νΈμν¬ μν©μ λ°λ₯Έ ν΅ν©μ μΈ ν΅ν νμ§ μ 보μ
λλ€.
reportμλ λ°©μ‘/ν΅μ μ μνλ₯Ό μ μμλ μ¬λ¬κ°μ§ κ°λ€μ΄ μμ΅λλ€. report.getHealthRating().getLevel()μ ν΅ν΄ νμ§μ μνλ₯Ό μ μλ μκ³ , report.getRemoteFrameRate() / report.getLocalFrameRate()λ₯Ό ν΅ν΄ ν΄λΉ μ°κ²°μ fpsλ₯Ό νμΈ ν μ μμ΅λλ€.
reportμλ λ°©μ‘/ν΅μ μ μνλ₯Ό μ μμλ μ¬λ¬κ°μ§ κ°λ€μ΄ μμ΅λλ€. report.getHealthRating().getLevel()μ ν΅ν΄ νμ§μ μνλ₯Ό μ μλ μκ³ , report.getRemoteFrameRate() / report.getLocalFrameRate()λ₯Ό ν΅ν΄ ν΄λΉ μ°κ²°μ fpsλ₯Ό νμΈ ν μ μμ΅λλ€.
λ³΄λ€ λ μμΈν λ΄μ©μ μλλ₯Ό νμΈνμΈμ.
Last updated