本文整理汇总了Java中org.red5.server.api.service.IServiceCapableConnection.invoke方法的典型用法代码示例。如果您正苦于以下问题:Java IServiceCapableConnection.invoke方法的具体用法?Java IServiceCapableConnection.invoke怎么用?Java IServiceCapableConnection.invoke使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.red5.server.api.service.IServiceCapableConnection
的用法示例。
在下文中一共展示了IServiceCapableConnection.invoke方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setRelayClient
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void setRelayClient() {
IConnection c = Red5.getConnectionLocal();
if (c instanceof IServiceCapableConnection) {
relayclient = c;
state.set(values.relayclient, c.getRemoteAddress());
Util.log("relayclient connected from: " + state.get(values.relayclient), this);
if (authtoken != null) {
IServiceCapableConnection sc = (IServiceCapableConnection) relayclient;
sc.invoke("relayCallClient", new Object[] { "writesetting",
GUISettings.relayserverauth.toString()+" "+authtoken });
}
if (state.exists(values.driver)) {
player.close();
player = null;
loginRecords.signoutDriver();
driverCallServer(PlayerCommands.publish, streamstate.stop.toString());
}
}
}
示例2: setGrabberVideoSoundMode
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
private void setGrabberVideoSoundMode(String str) {
if (!settings.getBoolean(ManualSettings.useflash)) return;
if (state.getBoolean(State.values.autodocking.name())) {
messageplayer("command dropped, autodocking", null, null);
return;
}
if (state.get(State.values.stream) == null) {
messageplayer("stream control unavailable, server may be in setup mode", null, null);
return;
}
long timeout = System.currentTimeMillis() + GRABBERRELOADTIMEOUT;
while (!(grabber instanceof IServiceCapableConnection) && System.currentTimeMillis() < timeout ) { Util.delay(10); }
if (!(grabber instanceof IServiceCapableConnection))
Util.log("setGrabberVideoSoundMode() error grabber reload timeout", this);
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
sc.invoke("videoSoundMode", new Object[]{str});
state.set(State.values.videosoundmode, str);
Util.log("grabber video sound mode = " + str, this);
}
示例3: frameGrab
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
/** */
public boolean frameGrab(String res) {
if(state.getBoolean(State.values.framegrabbusy.name()) ||
!(state.get(State.values.stream).equals(Application.streamstate.camera.toString()) ||
state.get(State.values.stream).equals(Application.streamstate.camandmic.toString()))) {
messageplayer("stream unavailable or framegrab busy", null, null);
return false;
}
if (settings.getBoolean(ManualSettings.useflash)) {
if (grabber instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
if (res.equals(AutoDock.LOWRES)) sc.invoke("framegrabMedium", new Object[]{});
else sc.invoke("framegrab", new Object[]{});
state.set(State.values.framegrabbusy.name(), true);
}
}
else video.framegrab(res);
// Util.debug("framegrab start at: "+System.currentTimeMillis(), this);
return true;
}
示例4: messageplayer
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void messageplayer(String str, String status, String value) {
if (state.exists(values.relayserver)) {
red5client.sendToRelay("messageplayer", new Object[] {str, status, value});
}
if (player instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) player;
sc.invoke("message", new Object[] { str, "green", status, value });
}
if(commandServer!=null) {
if(str!=null){
if(! str.equals("status check received")) // basic ping from client, ignore
commandServer.sendToGroup(TelnetServer.MSGPLAYERTAG + " " + str);
}
if (status !=null) {
commandServer.sendToGroup(TelnetServer.MSGPLAYERTAG + " <status> " + status + " " + value);
}
}
}
示例5: beAPassenger
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
/** */
private void beAPassenger(String user) {
String stream = state.get(State.values.stream);
pendingplayerisnull = true;
String str = user + " added as passenger";
messageplayer(str, null, null);
Util.log(str,this);
messageGrabber(str, null);
if (!stream.equals("stop")) {
Collection<Set<IConnection>> concollection = getConnections();
for (Set<IConnection> cc : concollection) {
for (IConnection con : cc) {
if (con instanceof IServiceCapableConnection
&& con != grabber && con != player) {
IServiceCapableConnection sc = (IServiceCapableConnection) con;
sc.invoke("message", new Object[] { "streaming " + stream, "green", "stream", stream }); }
}
}
}
loginRecords.bePassenger(user);
if (settings.getBoolean(GUISettings.loginnotify)) {
saySpeech("passenger lawg inn f" + user);
}
}
示例6: chat
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
private void chat(String str) {
Collection<Set<IConnection>> concollection = getConnections();
for (Set<IConnection> cc : concollection) {
for (IConnection con : cc) {
if (con instanceof IServiceCapableConnection && con != grabber
&& !(con == pendingplayer && !pendingplayerisnull)) {
IServiceCapableConnection n = (IServiceCapableConnection) con;
n.invoke("message", new Object[] { str, "yellow", null, null });
}
}
}
Util.log("chat: " + str,this);
messageGrabber("<CHAT>" + str, null);
if(str!=null) if (commandServer != null) {
str = str.replaceAll("</?i>", "");
commandServer.sendToGroup(TelnetServer.TELNETTAG+" chat from "+ str);
}
}
示例7: relayPing
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void relayPing() {
Util.debug("ping from relayclient", this); // TODO: testing
if (relayclient == null) {
Util.log("error,relayclient null", this); // TODO: testing
return;
}
IServiceCapableConnection sc = (IServiceCapableConnection) relayclient;
sc.invoke("relayPong", new Object[] { });
}
示例8: sendplayerfunction
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void sendplayerfunction(String fn, String params) {
if (player instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) player;
sc.invoke("playerfunction", new Object[] { fn, params });
}
if (state.exists(values.relayserver)) {
red5client.sendToRelay("sendplayerfunction", new Object[]{fn, params});
}
}
示例9: messageGrabber
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void messageGrabber(String str, String status) {
Util.debug("TO grabber flash: " + str + ", " + status, this);
if (grabber instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
sc.invoke("message", new Object[] { str, status });
}
if(commandServer != null) {
if(str!=null) commandServer.sendToGroup(TelnetServer.MSGGRABBERTAG + " " + str);
if (status != null) commandServer.sendToGroup(TelnetServer.MSGGRABBERTAG + " <status> " + status );
}
}
示例10: assumeControl
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
/** */
private void assumeControl(String user) {
messageplayer("controls hijacked", "hijacked", user);
if(player==null) return;
if(pendingplayer==null) { pendingplayerisnull = true; return; }
String con = "connected";
if (state.exists(values.relayclient)) {
IServiceCapableConnection t = (IServiceCapableConnection) relayclient;
t.invoke("playerSignIn", new Object[]{state.get(values.driver)});
con = "relay";
}
IConnection tmp = player;
player = pendingplayer;
pendingplayer = tmp;
state.set(State.values.driver, user);
String str = "connection "+con+" streamsettings " + streamSettings();
messageplayer(state.get(State.values.driver) + " connected to OCULUS", "multiple", str);
str = state.get(State.values.driver) + " connected from: " + player.getRemoteAddress();
Util.log("assumeControl(), " + str,this);
messageGrabber(str, null);
initialstatuscalled = false;
pendingplayerisnull = true;
loginRecords.beDriver();
if (settings.getBoolean(GUISettings.loginnotify)) {
saySpeech("lawg inn " + state.get(State.values.driver));
}
}
示例11: roomConnect
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
@Override
public boolean roomConnect(IConnection conn, Object[] params) {
_log.debug("roomConnect : ");
IServiceCapableConnection service = (IServiceCapableConnection) conn;
String streamId = conn.getClient().getId();
_log.debug("### Client connected to OpenMeetings, register Client StreamId: {} scope {}", streamId, conn.getScope().getName());
// Set StreamId in Client
service.invoke("setId", new Object[] { streamId }, this);
Map<String, Object> map = conn.getConnectParams();
String swfURL = map.containsKey("swfUrl") ? (String)map.get("swfUrl") : "";
String tcUrl = map.containsKey("tcUrl") ? (String)map.get("tcUrl") : "";
Map<String, Object> connParams = getConnParams(params);
String uid = (String)connParams.get("uid");
StreamClient rcm = new StreamClient();
rcm.setScope(conn.getScope().getName());
boolean hibernate = HIBERNATE.equals(rcm.getScope());
if (hibernate && "noclient".equals(uid)) {
return true;
}
String sid = (String)connParams.get(SID_PARAM);
if (Strings.isEmpty(sid)) {
sid = (String)connParams.get(PARENT_SID_PARAM);
}
if (Strings.isEmpty(sid)) {
_log.warn("No Owner SID is provided, client is rejected");
return rejectClient();
}
if (hibernate) {
return true; //mobile initial connect
}
if (rcm.getRoomId() == null && !hibernate) {
_log.warn("Bad room specified, client is rejected");
return rejectClient();
}
if (Boolean.TRUE.equals(connParams.get(MOBILE_PARAM))) {
rcm.setType(Client.Type.mobile);
} else if (Boolean.TRUE.equals(connParams.get(ROOM_PARAM))) {
rcm.setType(Client.Type.room);
}
rcm.setUid(Strings.isEmpty(uid) ? UUID.randomUUID().toString() : uid);
rcm.setSid(sid);
if (sipDao.getUid() != null && sipDao.getUid().equals(rcm.getSid())) {
rcm.setType(Client.Type.sip);
}
rcm.setUserport(conn.getRemotePort());
rcm.setRemoteAddress(conn.getRemoteAddress());
rcm.setSwfurl(swfURL);
rcm.setTcUrl(tcUrl);
IApplication iapp = getApp();
Number width = (Number)connParams.get(WIDTH_PARAM);
Number height = (Number)connParams.get(HEIGHT_PARAM);
if (width != null && height != null) {
//this is for external applications like ffmpeg [OPENMEETINGS-1574]
rcm.setWidth(width.intValue());
rcm.setHeight(height.intValue());
}
if (map.containsKey("screenClient")) {
rcm.setType(Client.Type.sharing);
}
rcm = sessionManager.add(iapp.updateClient(rcm, false));
if (rcm == null) {
_log.warn("Failed to create Client on room connect");
return false;
}
IClientUtil.init(conn.getClient(), rcm.getUid(), Client.Type.sharing == rcm.getType());
service.invoke("setUid", new Object[] { rcm.getUid() }, this);
// Log the User
conferenceLogDao.add(ConferenceLog.Type.clientConnect,
rcm.getUserId(), streamId, null, rcm.getRemoteAddress(),
rcm.getScope());
return true;
}
示例12: publish
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
public void publish(streamstate mode) {
if (state.getBoolean(State.values.autodocking.name())) {
messageplayer("command dropped, autodocking", null, null);
return;
}
if (state.get(State.values.stream) == null) {
messageplayer("stream control unavailable, server may be in setup mode", null, null);
return;
}
if (state.get(State.values.record) == null)
state.set(State.values.record, Application.streamstate.stop.toString());
// if recording and mode changing, kill recording
if (state.exists(values.stream)) {
if (!mode.equals(streamstate.valueOf(state.get(values.stream))) && !state.get(values.record).equals(streamstate.stop.toString()))
video.record(Settings.FALSE);
}
ArduinoPrime.checkIfInverted();
String current = settings.readSetting(GUISettings.vset);
String vals[] = (settings.readSetting(current)).split("_");
int width = Integer.parseInt(vals[0]);
int height = Integer.parseInt(vals[1]);
int fps = Integer.parseInt(vals[2]);
int quality = Integer.parseInt(vals[3]);
if (!settings.getBoolean(ManualSettings.useflash)) {
video.publish(mode, width, height, fps);
return;
}
// flash
try {
// commands: camandmic camera mic stop
long timeout = System.currentTimeMillis() + GRABBERRELOADTIMEOUT;
while (!(grabber instanceof IServiceCapableConnection) && System.currentTimeMillis() < timeout ) { Util.delay(10); }
if (!(grabber instanceof IServiceCapableConnection))
Util.log("publish() error grabber reload timeout", this);
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
sc.invoke("publish", new Object[] { mode.toString(), width, height, fps, quality });
messageplayer("command received: publish " + mode.toString(), null, null);
Util.log("publish: " + mode.toString(), this);
} catch (NumberFormatException e) {
Util.log("publish() error " + e.getMessage(),this);
Util.printError(e);
}
}
示例13: grabberPlayPlayer
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
private void grabberPlayPlayer(int nostreams) {
if (grabber instanceof IServiceCapableConnection) {
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
sc.invoke("play", new Object[] { nostreams });
}
}
示例14: setStreamActivityThreshold
import org.red5.server.api.service.IServiceCapableConnection; //导入方法依赖的package包/类
private void setStreamActivityThreshold(String str) {
String val[] = str.split("\\D+");
if (val.length != 2) { return; }
Integer videoThreshold = Integer.parseInt(val[0]);
Integer audioThreshold = Integer.parseInt(val[1]);
String stream = state.get(State.values.stream);
state.delete(State.values.streamactivity);
state.set(State.values.streamactivitythreshold, str);
if (videoThreshold != 0 || audioThreshold != 0) {
if (state.get(State.values.videosoundmode).equals(VIDEOSOUNDMODEHIGH)) {
setGrabberVideoSoundMode(VIDEOSOUNDMODELOW); // videosoundmode needs to be low to for activity threshold to work
if (stream != null) {
if (!stream.equals(streamstate.stop.toString())) { // if stream already running,
publish(streamstate.valueOf(stream)); // restart, in low mode
}
}
}
if (stream != null) {
if (stream.equals(streamstate.stop.toString())) {
if (audioThreshold == 0 && videoThreshold != 0) { publish(streamstate.camera); }
else if (audioThreshold != 0 && videoThreshold == 0) { publish(streamstate.mic); }
else { publish(streamstate.camandmic); }
}
}
state.set(State.values.streamactivityenabled.name(), System.currentTimeMillis());
}
else { // 0 0, disable streamActivityDetected()
state.delete(State.values.streamactivityenabled);
state.delete(State.values.streamactivitythreshold);
}
long timeout = System.currentTimeMillis() + GRABBERRELOADTIMEOUT;
while (!(grabber instanceof IServiceCapableConnection) && System.currentTimeMillis() < timeout ) { Util.delay(10); }
if (!(grabber instanceof IServiceCapableConnection))
Util.log("setStreamActivityThreshold() error grabber reload timeout", this);
IServiceCapableConnection sc = (IServiceCapableConnection) grabber;
sc.invoke("setActivityThreshold", new Object[]{videoThreshold, audioThreshold});
messageplayer("stream activity set to: " + str, null, null);
}