フラッシュでラジオ プレーヤーを作成しています。すべての 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 ストリームを再生できない理由を誰か教えてもらえますか? セキュリティ上の問題ですか? もしそうなら、どうすればこのセキュリティ問題を回避できますか?