MyHandler对'play'消息的处理

            case 'play':
            {
                //从消息msg的"result"得到result的值
                int32_t result;
                CHECK(msg->findInt32("result", &result));

                ALOGI("PLAY completed with result %d (%s)",
                     result, strerror(-result));

                if (result == OK) {
                    //如果result == OK
                    //说明成功收到了服务端发送来的对应于play的应答消息
                    //从消息msg的"response"字段获取到应答消息对象response
                    sp<RefBase> obj;
                    CHECK(msg->findObject("response", &obj));
                    sp<ARTSPResponse> response =
                        static_cast<ARTSPResponse *>(obj.get());

                    if (response->mStatusCode != 200) {
                        //如果应答消息的状态码不为200
                        //则将错误码UNKNOWN_ERROR赋值给result
                        result = UNKNOWN_ERROR;
                    } else {
                        //代码执行到这里说明应答消息的状态码为200
                        //调用parsePlayResponse(response)函数解析应答消息对象
                        //具体的解析过程后续介绍
                        parsePlayResponse(response);

                        //新建消息timeout
                        //消息名'tiou'
                        //消息处理者为this也即MyHandler
                        sp<AMessage> timeout = new AMessage('tiou', this);
                        //将超时检查标识mCheckTimeoutGeneration自增1
                        //并添加到timeout消息的"tioucheck"字段
                        //发送该timeout消息
                        mCheckTimeoutGeneration++;
                        timeout->setInt32("tioucheck", mCheckTimeoutGeneration);
                        timeout->post(kStartupTimeoutUs);
                    }
                }

                if (result != OK) {
                    //如果上述过程中result != OK
                    //则需要发送消息名为'disc'的消息取消连接
                    sp<AMessage> reply = new AMessage('disc', this);
                    mConn->disconnect(reply);
                }

                break;
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值