本文整理汇总了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)) {
}
}
示例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);
}
示例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();
}
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例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());
}
}
示例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());
}
}
示例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");
}
示例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);
}
}
示例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());
}
}