use of su.litvak.chromecast.api.v2.Media in project vialer-android by VoIPGRID.
the class SipCall method onCallMediaState.
/**
* Translate the callback to the interface, which is implemented by the SipService
*
* @param onCallMediaStateParam parameters containing the state of the an active call' media.
*/
@Override
public void onCallMediaState(OnCallMediaStateParam onCallMediaStateParam) {
// Find suitable audio stream by looping.
try {
CallInfo ci = getInfo();
CallMediaInfoVector media = ci.getMedia();
// Administration to see if we connected some media to this call.
boolean mediaAvailable = false;
for (int i = 0; i < media.size(); ++i) {
CallMediaInfo cmi = media.get(i);
boolean usableStatus = (cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_ACTIVE || cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_REMOTE_HOLD);
if (cmi.getType() == pjmedia_type.PJMEDIA_TYPE_AUDIO && usableStatus) {
Media m = getMedia(i);
AudioMedia audio = AudioMedia.typecastFromMedia(m);
// Do some administration to notify about present media
mediaAvailable = true;
this.onCallMediaAvailable(audio);
}
}
if (!mediaAvailable) {
this.onCallMediaUnavailable();
}
} catch (Exception e) {
this.onCallInvalidState(e);
}
}
use of su.litvak.chromecast.api.v2.Media in project UniversalMediaServer by UniversalMediaServer.
the class ChromecastPlayer method startPoll.
public void startPoll() {
Runnable r = new Runnable() {
@Override
public void run() {
for (; ; ) {
try {
Thread.sleep(1000);
Status s1 = api.getStatus();
if (s1 == null || !s1.isAppRunning(MediaPlayer)) {
continue;
}
MediaStatus status = api.getMediaStatus();
if (status == null) {
continue;
}
state.playback = translateState(status.playerState);
Media m = status.media;
if (m != null) {
if (m.url != null) {
state.uri = status.media.url;
}
if (m.duration != null) {
state.duration = StringUtil.convertTimeToString(status.media.duration, "%02d:%02d:%02.0f");
}
}
state.position = StringUtil.convertTimeToString(status.currentTime, "%02d:%02d:%02.0f");
if (status.volume != null) {
state.volume = status.volume.level.intValue();
state.mute = status.volume.muted;
}
alert();
} catch (InterruptedException | IOException e) {
LOGGER.debug("Bad chromecast mediastate " + e);
}
}
}
};
poller = new Thread(r);
poller.start();
}
Aggregations