Search in sources :

Example 1 with Media

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);
    }
}
Also used : CallMediaInfoVector(org.pjsip.pjsua2.CallMediaInfoVector) CallInfo(org.pjsip.pjsua2.CallInfo) CallMediaInfo(org.pjsip.pjsua2.CallMediaInfo) Media(org.pjsip.pjsua2.Media) AudioMedia(org.pjsip.pjsua2.AudioMedia) AudioMedia(org.pjsip.pjsua2.AudioMedia)

Example 2 with Media

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();
}
Also used : MediaStatus(su.litvak.chromecast.api.v2.MediaStatus) Status(su.litvak.chromecast.api.v2.Status) Media(su.litvak.chromecast.api.v2.Media) IOException(java.io.IOException) MediaStatus(su.litvak.chromecast.api.v2.MediaStatus)

Aggregations

IOException (java.io.IOException)1 AudioMedia (org.pjsip.pjsua2.AudioMedia)1 CallInfo (org.pjsip.pjsua2.CallInfo)1 CallMediaInfo (org.pjsip.pjsua2.CallMediaInfo)1 CallMediaInfoVector (org.pjsip.pjsua2.CallMediaInfoVector)1 Media (org.pjsip.pjsua2.Media)1 Media (su.litvak.chromecast.api.v2.Media)1 MediaStatus (su.litvak.chromecast.api.v2.MediaStatus)1 Status (su.litvak.chromecast.api.v2.Status)1