游戏开发者社区

[flash移动开发] 关于NetConnection连接rtmp服务器发送音频流的问题

查看: 10496|回复: 2

Rank: 6Rank: 6Rank: 6

威望
0 点
义气
5 点
发表于 2015-2-3 18:17:32 |显示全部楼层
15银子
关于NetConnection连接rtmp服务器发送音频流的问题,代码如下:var url_push_t:String = "rtmp://pili-in.qiniu.com/livestream/je6e2di2?key=d6d520312ef4af15";
var clientObj:Object = new Object();
//
clientObj.onBWDone = onBWDone;
clientObj.onBWCheck = onBWCheck;
clientObj.onMetaData = onMetaData;

function onBWDone(... rest):Boolean
{
        return true;
}

function onBWCheck(... rest):Number
{
        return 0;
}

function onMetaData(info:Object):void
{
        trace("metaData");
}



var nc_push_t:NetConnection = new NetConnection();
nc_push_t.client = clientObj;
nc_push_t.addEventListener(NetStatusEvent.NET_STATUS, nc_push_tStatusHandler);
nc_push_t.connect(url_push_t);


function nc_push_tStatusHandler(event:NetStatusEvent):void
                {
                        trace("=== 老师推流连接 ncStatusHandler:"+event.info.code + " | " + event.info.description);
                        switch (event.info.code)
                        {
                                case "NetConnection.Connect.Success":
                                        trace("老师推流连接服务器连接成功");
                                        publishStream();
                                        break;
                                case "NetConnection.Connect.Closed":
                                        trace("\n老师推流连接服务器连接关闭!");
                                        break;        
                        }
                }


//发送音频
function publishStream():void
                {
                        trace("老师发送流");
                        info.appendText("\n老师发送流:"+videoURL);
                        ns_t_publish = new NetStream(nc_push_t);
                        ns_t_publish.client = new CustomClient();
                        ns_t_publish.attachAudio(getMicrophone());
                        ns_t_publish.bufferTime = 0;
                        ns_t_publish.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
                        ns_t_publish.addEventListener(NetStatusEvent.NET_STATUS, ns_t_publishStatusHandler);
                        ns_t_publish.publish(videoURL);
                }

asyncErrorHandler,ns_t_publishStatusHandler两个事件函数我就不贴了,问题是:在IOS设备运行是OK的,但是在Android设备运行,nc_push_tNET_STATUS会连接服务器后几秒就收到NetConnection.Connect.Closed,请教具体的原因!
如果能写个demo在Android的设备上跑一下那就感激不尽了!随便找找原因!!





举报

Rank: 6Rank: 6Rank: 6

威望
0 点
义气
5 点
发表于 2015-2-5 11:25:05
找到原因了,代码没有问题,是安卓设备要给予相关的权限

举报

Rank: 9Rank: 9Rank: 9

威望
16 点
义气
5 点

AQ小生

发表于 2015-6-30 07:56:29
哪个权限

举报

您需要登录后才可以回帖 登录 | 注册

关闭

江湖传闻

手机版|9RIA.com ( 京ICP备11007422号-2 

GMT+8, 2017-3-26 03:39 , Processed in 0.113011 second(s), 19 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部