2

フラッシュでラジオ プレーヤーを作成しています。すべての BBC ラジオ局をプレーヤーで動作させる必要があります。

AAC ストリームを使用しようとしています。AAC ストリームを読み取るための ActionScript 3 コードが少しありますが、これは BBC ラジオ ストリームでは機能しないようです。私が受け取るエラーメッセージは次のとおりです。 NetStream.Play.StreamNotFoundしかし、まったく同じストリームがWinAmpで正常に機能します。

これは、私が再生しようとしている AAC ストリームのサンプルです (BBC Radio 3):

http://bbcmedia.ic.llnwd.net/stream/bbcmedia_lc1_radio3_q?s=1334749463&e=1334763863&h=3bc870c82d1e1f360d8cfc1d296d97c2

これは、ストリームを再生するために使用している AS3 クラスです。

package play {

import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import flash.events.AsyncErrorEvent;

public class aacplay {

    private var netConn:NetConnection=new NetConnection();
    private var netStrm:NetStream;
    private var urlStr:String;

    public function aacplay(radiourl) {
        urlStr=radiourl;
        connect();
    }

    private function connect():void{
        netConn.close();
        netConn=new NetConnection();
        netConn.addEventListener(NetStatusEvent.NET_STATUS,netStatusHdlr);
        netConn.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHdlr);
            netConn.connect(null);
        }

        private function netStatusHdlr(e:NetStatusEvent):void{
            trace('netStatusHdlr:'+e.info.code);
            switch(e.info.code){
                case 'NetConnection.Connect.Success':
                    requestAudio();
                    break;
            }
        }

        private function requestAudio():void{
            if(netStrm!==null){
                netStrm.close();
            }
            netStrm=new NetStream(netConn);
            netStrm.addEventListener(NetStatusEvent.NET_STATUS,netStatusHdlr);
            netStrm.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHdlr);
            netStrm.checkPolicyFile=false;
            netStrm.play(urlStr);
        }

        private function asyncErrorHdlr(e:AsyncErrorEvent):void{
            trace('asyncErrorHdlr:'+e);
        }
    }
}

そして、私は次のようにクラスを呼び出しています:

var aac:aacplay=new aacplay('http://bbcmedia.ic.llnwd.net/stream/bbcmedia_lc1_radio3_q?s=1334749463&e=1334763863&h=3bc870c82d1e1f360d8cfc1d296d97c2');

BBC ストリームを再生できない理由を誰か教えてもらえますか? セキュリティ上の問題ですか? もしそうなら、どうすればこのセキュリティ問題を回避できますか?

4

1 に答える 1

1

netConn.connect(null)ローカルの mp4 または flv ファイルを再生するか、データを手動でバッファにプッシュすることを意味します。NetStream.appendBytes()

この状況では、次のものが必要です。

  • URLSocketあなたのURLを開く
  • データを受け取る
  • その場で解析する
  • 前のステップのデータを使用して作成FLVTagするAAC
  • このデータをプッシュするNetStream.appendBytes()

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#appendBytes()

于 2013-07-31T09:28:44.293 に答える