当前位置: 首页>>代码示例>>Java>>正文


Java IPendingServiceCall.getResult方法代码示例

本文整理汇总了Java中org.red5.server.api.service.IPendingServiceCall.getResult方法的典型用法代码示例。如果您正苦于以下问题:Java IPendingServiceCall.getResult方法的具体用法?Java IPendingServiceCall.getResult怎么用?Java IPendingServiceCall.getResult使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.red5.server.api.service.IPendingServiceCall的用法示例。


在下文中一共展示了IPendingServiceCall.getResult方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    String method = call.getServiceMethodName();
    log.debug("resultReceived: {}", method);
    if ("connect".equals(method)) {
        //rtmpClient.releaseStream(this, new Object[] { publishName });
        timer.schedule(new BandwidthStatusTask(), 2000L);
    } else if ("releaseStream".equals(method)) {
        //rtmpClient.invoke("FCPublish", new Object[] { publishName }, this);
    } else if ("createStream".equals(method)) {
        setState(StreamState.PUBLISHING);
        Object result = call.getResult();
        if (result instanceof Number) {
            streamId = (Number) result;
            log.debug("Publishing: {}", state);
            rtmpClient.publish(streamId, publishName, publishMode, this);
        } else {
            rtmpClient.disconnect();
            setState(StreamState.STOPPED);
        }
    } else if ("FCPublish".equals(method)) {

    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:25,代码来源:StreamingProxy.java

示例2: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    Number streamId = (Number) call.getResult();
    log.debug("CreateStreamCallBack resultReceived - stream id: {} call: {}", streamId, call);
    log.debug("Connection: {}", conn);
    if (conn != null && streamId != null) {
        log.debug("Setting new net stream");
        NetStream stream = new NetStream(streamEventDispatcher);
        stream.setConnection(conn);
        stream.setStreamId(streamId);
        conn.addClientStream(stream);
        NetStreamPrivateData streamData = new NetStreamPrivateData();
        streamData.outputStream = conn.createOutputStream(streamId);
        streamData.connConsumer = new ConnectionConsumer(conn, streamData.outputStream.getVideo(), streamData.outputStream.getAudio(), streamData.outputStream.getData());
        streamDataMap.put(streamId, streamData);
        log.debug("streamDataMap: {}", streamDataMap);
    }
    wrapped.resultReceived(call);
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:20,代码来源:BaseRTMPClientHandler.java

示例3: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
	String method = call == null ? null : call.getServiceMethodName();
	logger.trace("call ### get Method Name " + method);
	if ("createStream".equals(method)) {
		if (call.getResult() != null) {
			publishScreen.setStreamId((Integer)call.getResult());
			publish(publishScreen.getStreamId(), id, "live", this);
			publishScreen.setStartPublish(true);
			publishScreen.start();
		} else {
			connectionClosed();
		}
	}
}
 
开发者ID:apache,项目名称:openmeetings,代码行数:16,代码来源:RTMPClientPublish.java

示例4: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    System.out.println("resultReceived: " + call);
    Double streamId = (Double) call.getResult();
    System.out.println("stream id: " + streamId);
    // send our buffer size request
    if (sourceStreamName.endsWith(".flv") || sourceStreamName.endsWith(".f4v") || sourceStreamName.endsWith(".mp4")) {
        client.play(streamId, sourceStreamName, 0, -1);
    } else {
        client.play(streamId, sourceStreamName, -1, 0);
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:13,代码来源:StreamRelay.java

示例5: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    System.out.println("connectCallback");
    ObjectMap<?, ?> map = (ObjectMap<?, ?>) call.getResult();
    String code = (String) map.get("code");
    System.out.printf("Response code: %s\n", code);
    if ("NetConnection.Connect.Rejected".equals(code)) {
        System.out.printf("Rejected: %s\n", map.get("description"));
        disconnect();
        finished = true;
    } else if ("NetConnection.Connect.Success".equals(code)) {
        invoke("demoService.getListOfAvailableFLVs", new Object[] {}, methodCallCallback);
        createStream(createStreamCallback);
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:16,代码来源:ClientTest.java

示例6: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    log.debug("Received pending call: {}", call);
    Object result = call.getResult();
    if (result instanceof ObjectMap) {
        obj = getSharedObject(soName, false);
        obj.connect(Red5.getConnectionLocal());
        obj.addSharedObjectListener(this);
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:11,代码来源:SharedObjectClient.java

示例7: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    System.out.println("resultReceived: " + call);
    Double streamId = (Double) call.getResult();
    System.out.println("stream id: " + streamId);
    // send our buffer size request
    client.play(streamId, sourceStreamName, 0, -1);
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:9,代码来源:RTMPClientTest.java

示例8: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    System.out.println("connectCallback");
    ObjectMap<?, ?> map = (ObjectMap<?, ?>) call.getResult();
    String code = (String) map.get("code");
    System.out.printf("Response code: %s\n", code);
    if ("NetConnection.Connect.Rejected".equals(code)) {
        System.out.printf("Rejected: %s\n", map.get("description"));
        disconnect();
        synchronized (RTMPTSClientTest.class) {
            finished = true;
            RTMPTSClientTest.class.notifyAll();
        }
    } else if ("NetConnection.Connect.Failed".equals(code)) {
        System.out.printf("Failed: %s\n", map.get("description"));
        disconnect();
        synchronized (RTMPTSClientTest.class) {
            finished = true;
            RTMPTSClientTest.class.notifyAll();
        }
    } else if ("NetConnection.Connect.Success".equals(code)) {
        test();
        createStream(createStreamCallback);
    } else {
        System.out.printf("Unhandled response code: %s\n", code);
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:28,代码来源:RTMPTSClientTest.java

示例9: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {
    System.out.println("connectCallback");
    ObjectMap<?, ?> map = (ObjectMap<?, ?>) call.getResult();
    String code = (String) map.get("code");
    System.out.printf("Response code: %s\n", code);
    if ("NetConnection.Connect.Rejected".equals(code)) {
        System.out.printf("Rejected: %s\n", map.get("description"));
        disconnect();
        synchronized (RTMPTClientTest.class) {
            finished = true;
            RTMPTClientTest.class.notifyAll();
        }
    } else if ("NetConnection.Connect.Failed".equals(code)) {
        System.out.printf("Failed: %s\n", map.get("description"));
        disconnect();
        synchronized (RTMPTClientTest.class) {
            finished = true;
            RTMPTClientTest.class.notifyAll();
        }
    } else if ("NetConnection.Connect.Success".equals(code)) {
        test();
        createStream(createStreamCallback);
    } else {
        System.out.printf("Unhandled response code: %s\n", code);
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:28,代码来源:RTMPTClientTest.java

示例10: encodeCommand

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
/**
 * Encode command event and fill given byte buffer.
 *
 * @param out
 *            Buffer to fill
 * @param command
 *            Command event
 */
protected void encodeCommand(IoBuffer out, ICommand command) {
    // TODO: tidy up here
    Output output = new org.red5.io.amf.Output(out);
    final IServiceCall call = command.getCall();
    final boolean isPending = (call.getStatus() == Call.STATUS_PENDING);
    log.debug("Call: {} pending: {}", call, isPending);
    if (!isPending) {
        log.debug("Call has been executed, send result");
        Serializer.serialize(output, call.isSuccess() ? "_result" : "_error");
    } else {
        log.debug("This is a pending call, send request");
        final String action = (call.getServiceName() == null) ? call.getServiceMethodName() : call.getServiceName() + '.' + call.getServiceMethodName();
        Serializer.serialize(output, action); // seems right
    }
    if (command instanceof Invoke) {
        Serializer.serialize(output, Integer.valueOf(command.getTransactionId()));
        Serializer.serialize(output, command.getConnectionParams());
    }
    if (call.getServiceName() == null && "connect".equals(call.getServiceMethodName())) {
        // response to initial connect, always use AMF0
        output = new org.red5.io.amf.Output(out);
    } else {
        if (Red5.getConnectionLocal().getEncoding() == Encoding.AMF3) {
            output = new org.red5.io.amf3.Output(out);
        } else {
            output = new org.red5.io.amf.Output(out);
        }
    }
    if (!isPending && (command instanceof Invoke)) {
        IPendingServiceCall pendingCall = (IPendingServiceCall) call;
        if (!call.isSuccess()) {
            log.debug("Call was not successful");
            StatusObject status = generateErrorResult(StatusCodes.NC_CALL_FAILED, call.getException());
            pendingCall.setResult(status);
        }
        Object res = pendingCall.getResult();
        log.debug("Writing result: {}", res);
        Serializer.serialize(output, res);
    } else {
        log.debug("Writing params");
        final Object[] args = call.getArguments();
        if (args != null) {
            for (Object element : args) {
                if (element instanceof ByteBuffer) {
                    // a byte buffer indicates that serialization is already complete, send raw
                    final ByteBuffer buf = (ByteBuffer) element;
                    buf.mark();
                    try {
                        out.put(buf);
                    } finally {
                        buf.reset();
                    }
                } else {
                    // standard serialize
                    Serializer.serialize(output, element);
                }
            }
        }
    }
    if (command.getData() != null) {
        out.setAutoExpand(true);
        out.put(command.getData());
    }
}
 
开发者ID:Red5,项目名称:red5-server-common,代码行数:73,代码来源:RTMPProtocolEncoder.java

示例11: encodeCommand

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
/**
 * Encode notification event and fill given byte buffer.
 *
 * @param out
 *            Byte buffer to fill
 * @param command
 *            Notification event
 */
@Override
protected void encodeCommand(IoBuffer out, ICommand command) {
    log.debug("encodeCommand - command: {}", command);
    RTMPConnection conn = (RTMPConnection) Red5.getConnectionLocal();
    Output output = new org.red5.io.amf.Output(out);
    final IServiceCall call = command.getCall();
    final boolean isPending = (call.getStatus() == Call.STATUS_PENDING);
    log.debug("Call: {} pending: {}", call, isPending);
    if (!isPending) {
        log.debug("Call has been executed, send result");
        Serializer.serialize(output, call.isSuccess() ? "_result" : "_error");
    } else {
        log.debug("This is a pending call, send request");
        // for request we need to use AMF3 for client mode if the connection is AMF3
        if (conn.getEncoding() == Encoding.AMF3) {
            output = new org.red5.io.amf3.Output(out);
        }
        final String action = (call.getServiceName() == null) ? call.getServiceMethodName() : call.getServiceName() + '.' + call.getServiceMethodName();
        Serializer.serialize(output, action);
    }
    if (command instanceof Invoke) {
        Serializer.serialize(output, Integer.valueOf(command.getTransactionId()));
        Serializer.serialize(output, command.getConnectionParams());
    }
    if (call.getServiceName() == null && "connect".equals(call.getServiceMethodName())) {
        // response to initial connect, always use AMF0
        output = new org.red5.io.amf.Output(out);
    } else {
        if (conn.getEncoding() == Encoding.AMF3) {
            output = new org.red5.io.amf3.Output(out);
        } else {
            output = new org.red5.io.amf.Output(out);
        }
    }
    if (!isPending && (command instanceof Invoke)) {
        IPendingServiceCall pendingCall = (IPendingServiceCall) call;
        if (!call.isSuccess()) {
            log.debug("Call was not successful");
            StatusObject status = generateErrorResult(StatusCodes.NC_CALL_FAILED, call.getException());
            pendingCall.setResult(status);
        }
        Object res = pendingCall.getResult();
        log.debug("Writing result: {}", res);
        Serializer.serialize(output, res);
    } else {
        log.debug("Writing params");
        final Object[] args = call.getArguments();
        if (args != null) {
            for (Object element : args) {
                Serializer.serialize(output, element);
            }
        }
    }
    if (command.getData() != null) {
        out.setAutoExpand(true);
        out.put(command.getData());
    }
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:67,代码来源:RTMPClientProtocolEncoder.java

示例12: test26

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Test
public void test26() throws InterruptedException {
    client.setStreamEventHandler(new INetStreamEventHandler() {
        @Override
        public void onStreamEvent(Notify notify) {
            log.info("ClientStream.dispachEvent: {}", notify);
        }
    });
    client.setServiceProvider(new ClientMethodHander());
    client.setConnectionClosedHandler(new Runnable() {
        @Override
        public void run() {
            System.out.println("Connection closed");
        }
    });
    client.setExceptionHandler(new ClientExceptionHandler() {
        @Override
        public void handleException(Throwable throwable) {
            throwable.printStackTrace();
        }
    });

    IPendingServiceCallback connectCallback = new IPendingServiceCallback() {
        @Override
        public void resultReceived(IPendingServiceCall call) {
            log.info("connectCallback");
            ObjectMap<?, ?> map = (ObjectMap<?, ?>) call.getResult();
            String code = (String) map.get("code");
            log.info("Response code: {}", code);
            if ("NetConnection.Connect.Rejected".equals(code)) {
                System.out.printf("Rejected: %s\n", map.get("description"));
                client.disconnect();
            } else if ("NetConnection.Connect.Success".equals(code)) {
                // 1. Wait for onBWDone
                timer.schedule(new BandwidthStatusTask(), 2000L);
            }
        }
    };

    /*client.connect("localhost", 1935, "live/remote/0586e318-6277-11e3-adc2-22000a1d91fe", new IPendingServiceCallback() {
          @Override
          public void resultReceived(IPendingServiceCall result) {
              System.out.println("resultReceived: " + result);
              ObjectMap<?, ?> map = (ObjectMap<?, ?>) result.getResult();
              String code = (String) map.get("code");
              System.out.printf("Response code: %s\n", code);
              if ("NetConnection.Connect.Rejected".equals(code)) {
                  System.out.printf("Rejected: %s\n", map.get("description"));
                  client.disconnect();
              } else if ("NetConnection.Connect.Success".equals(code)) {
                  System.out.println("success: " + result.isSuccess());
                  ArrayList<Object> list = new ArrayList<>();
                  list.add(new Object[] { "fujifilm-x100s-video-test-1080p-full-hd-hdmp4_720.mp4" });
                  list.add(new Object[] { "canon-500d-test-video-720-hd-30-fr-hdmp4_720.mp4" });
                  Object[] params = { "64", "cc-video-processed/", list };
                  //Object[] params = { "64", "cc-video-processed/" };
                  client.invoke("loadPlaylist", params, new IPendingServiceCallback() {
                      @Override
                      public void resultReceived(IPendingServiceCall result) {
                          System.out.println(result);
                      }
                  });
              }
          }
      });
    */
    client.connect("localhost", 1935, "vod", connectCallback);

    do {
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
        }
    } while (!client.conn.isClosed());
    log.debug("Client not connected");
    timer.cancel();
    log.info("Exit");
}
 
开发者ID:Red5,项目名称:red5-client,代码行数:79,代码来源:RTMPClientTest.java

示例13: resultReceived

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
@Override
public void resultReceived(IPendingServiceCall call) {

    ObjectMap<?, ?> map = (ObjectMap<?, ?>) call.getResult();
    String code = (String) map.get("code");
    Util.log("Red5Client connectCallback Response code: " + code, this);
    if ("NetConnection.Connect.Success".equals(code)) { // success
        Util.log("Remote relay server connect success", this);

        if (state.exists(State.values.relayserver)) { // just in case
            Util.log("error, state relay server exists", this);
            return;
        }

        if (state.exists(State.values.driver)) {
            app.driverCallServer(PlayerCommands.messageclients, "connected to relay server, logging out this connection");
            app.driverCallServer(PlayerCommands.driverexit, null);
        }

        state.set(State.values.relayserver, settings.readSetting(GUISettings.relayserver));

        app.driverCallServer(PlayerCommands.messageclients, "connected to relay server: " +
                state.get(State.values.relayserver));

        // notify remote server that this is an authenticated relay client
        invoke("setRelayClient", new IPendingServiceCallback() {
            @Override
            public void resultReceived(IPendingServiceCall iPendingServiceCall) {

            }
        });


    }

    else if ("NetConnection.Connect.Rejected".equals(code)) {
        disconnect();
        Util.log("Red5Client connect rejected: " + map.get("description"), this);
        state.delete(State.values.relayserver);
    }

    else {
        Util.log("Remote relay server connect failed", this);
        disconnect();
        state.delete(State.values.relayserver);
    }
}
 
开发者ID:xaxxontech,项目名称:oculusPrime,代码行数:48,代码来源:Red5Client.java

示例14: encodeNotifyOrInvoke

import org.red5.server.api.service.IPendingServiceCall; //导入方法依赖的package包/类
/**
 * Encode notification event and fill given byte buffer.
 *
 * @param out               Byte buffer to fill
 * @param invoke            Notification event
 */
protected void encodeNotifyOrInvoke(IoBuffer out, Notify invoke, RTMP rtmp) {
	// TODO: tidy up here
	Output output = new org.red5.io.amf.Output(out);
	final IServiceCall call = invoke.getCall();
	final boolean isPending = (call.getStatus() == Call.STATUS_PENDING);
	log.debug("Call: {} pending: {}", call, isPending);
	if (!isPending) {
		log.debug("Call has been executed, send result");
		serializer.serialize(output, call.isSuccess() ? "_result" : "_error");
	} else {
		log.debug("This is a pending call, send request");
		// for request we need to use AMF3 for client mode if the connection is AMF3
		//if (rtmp.getEncoding() == Encoding.AMF3 && rtmp.getMode() == RTMP.MODE_CLIENT) {
		//	output = new org.red5.io.amf3.Output(out);
		//}
		final String action = (call.getServiceName() == null) ? call.getServiceMethodName() : call.getServiceName() + '.' + call.getServiceMethodName();
		serializer.serialize(output, action); // seems right
	}
	if (invoke instanceof Invoke) {
		serializer.serialize(output, Integer.valueOf(invoke.getInvokeId()));
		serializer.serialize(output, invoke.getConnectionParams());
	}

	if (call.getServiceName() == null && "connect".equals(call.getServiceMethodName())) {
		// response to initial connect, always use AMF0
		output = new org.red5.io.amf.Output(out);
	} else {
		if (rtmp.getEncoding() == Encoding.AMF3) {
			output = new org.red5.io.amf3.Output(out);
		} else {
			output = new org.red5.io.amf.Output(out);
		}
	}

	if (!isPending && (invoke instanceof Invoke)) {
		IPendingServiceCall pendingCall = (IPendingServiceCall) call;
		if (!call.isSuccess()) {
			log.debug("Call was not successful");
			StatusObject status = generateErrorResult(StatusCodes.NC_CALL_FAILED, call.getException());
			pendingCall.setResult(status);
		}
		Object res = pendingCall.getResult();
		log.debug("Writing result: {}", res);
		serializer.serialize(output, res);
	} else {
		log.debug("Writing params");
		final Object[] args = call.getArguments();
		if (args != null) {
			for (Object element : args) {
				serializer.serialize(output, element);
			}
		}
	}
	if (invoke.getData() != null) {
		out.setAutoExpand(true);
		out.put(invoke.getData());
	}
}
 
开发者ID:cwpenhale,项目名称:red5-mobileconsole,代码行数:65,代码来源:RTMPProtocolEncoder.java


注:本文中的org.red5.server.api.service.IPendingServiceCall.getResult方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。