贴出安卓N版本ARTSPConnection::sendRequest原文:
==>
void ARTSPConnection::sendRequest(
const char *request, const sp<AMessage> &reply) {
//新建消息msg,消息名为kWhatSendRequest,消息的处理者为this,也即ARTSPConnection
//将要发送的消息添加到"request"字段
//将应答异步处理消息的引用添加到"reply"字段
sp<AMessage> msg = new AMessage(kWhatSendRequest, this);
msg->setString("request", request);
msg->setMessage("reply", reply);
msg->post();
}
==>
void ARTSPConnection::onMessageReceived(const sp<AMessage> &msg) {
switch (msg->what()) {
case kWhatConnect:
onConnect(msg);
break;
case kWhatDisconnect:
onDisconnect(msg);
break;
case kWhatCompleteConnection:
onCompleteConnection(msg);
break;
case kWhatSendRequest:
//对消息名为kWhatSendRequest的处理
//调用onSendRequest(msg)完成处理的细节
//onSendRequest下一文介绍
onSendRequest(msg);
break;
case kWhatReceiveResponse:
onReceiveResponse();
break;
case kWhatObserveBinaryData:
{
CHECK(msg->findMessage("reply", &mObserveBinaryMessage));
break;
}
default:
TRESPASS();
break;
}
}