For iOS, you need to check in on_call_media_state
Here is my implementation
static void onCallMediaState(pjsua_call_id callId) {
pjsua_call_info ci;
pjsua_call_get_info(callId, &ci);
for (unsigned i = 0; i < ci.media_cnt; i++) {
if (ci.media[i].type == PJMEDIA_TYPE_AUDIO) {
...
} else if (ci.media[i].type == PJMEDIA_TYPE_VIDEO) {
...
}
}
...
}
For Android, override onCallMediaState method in Call
public void onCallMediaState(final OnCallMediaStateParam param) {
CallInfo callInfo;
try {
callInfo = getInfo();
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < callInfo.getMedia().size(); i++) {
final CallMediaInfo callMediaInfo = callInfo.getMedia().get(i);
if (callMediaInfo.getType() == pjmedia_type.PJMEDIA_TYPE_AUDIO) {
…
} else if (callMediaInfo.getType() == pjmedia_type.PJMEDIA_TYPE_VIDEO) {
…
}
…
}
}