Actionscript 3 NetStream信息返回0';s(冰铸溪)
我已到处搜索此问题的修复程序,但找不到有关几乎所有属性都返回为0的原因的任何信息 我正在使用FLV包装从Icecast中提取实时音频流(15年后,Adobe仍未修复其实时音频内存泄漏问题)。它工作得很好,所有功能都很完美 然而,我想创建一个带宽监视器(用于我的iPhone端口和普通的Flash播放器)。。。但每当我检索到Actionscript 3 NetStream信息返回0';s(冰铸溪),actionscript-3,null,adobe,icecast,Actionscript 3,Null,Adobe,Icecast,我已到处搜索此问题的修复程序,但找不到有关几乎所有属性都返回为0的原因的任何信息 我正在使用FLV包装从Icecast中提取实时音频流(15年后,Adobe仍未修复其实时音频内存泄漏问题)。它工作得很好,所有功能都很完美 然而,我想创建一个带宽监视器(用于我的iPhone端口和普通的Flash播放器)。。。但每当我检索到netStreamInfo时,它就会返回0!对于dataBytesPerSecond,audioBytesPerSecond,字节数,dataByteCount,几乎每个属性都返
netStreamInfo
时,它就会返回0
!对于dataBytesPerSecond
,audioBytesPerSecond
,字节数
,dataByteCount
,几乎每个属性都返回0
。我用1秒的时间运行这个
以下是总信息输出:
currentBytesPerSecond=0
byteCount=0
maxBytesPerSecond=0
audioBytesPerSecond=0
audioByteCount=0
videoBytesPerSecond=0
videoByteCount=0
dataBytesPerSecond=0
dataByteCount=0
playbackBytesPerSecond=16296.296296296296
droppedFrames=0
audioBufferLength=0.072
videoBufferLength=0
dataBufferLength=0
audioBufferByteLength=1540
videoBufferByteLength=0
dataBufferByteLength=0
srtt=0
audioLossRate=0
videoLossRate=0 Data Bytes Per Second
输出时间大约为5分钟。我注意到,playbackytespersecond
从未改变,而audiobufferbytellength
喜欢在1540和23xx之间随机切换
有人能帮我吗
我的行动脚本:
package
{
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.text.TextFieldAutoSize;
import flash.text.TextField;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.events.NetStatusEvent;
import flash.utils.Timer;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.media.SoundTransform;
import flash.display.Loader;
import flash.errors.IOError;
import flash.events.MouseEvent;
import flash.geom.Rectangle;
import flash.net.NetStreamInfo;
import flash.utils.ByteArray;
import flash.media.*
public class soundContainer extends Sprite
{
public var slider:SliderMC = new SliderMC();
private var _video:Video;
private var _stream:NetStream;
private var _playbackTime:TextField;
private var _duration:uint;
private var _timer:Timer;
private var _soundChannel:SoundChannel;
public var audioTransform:SoundTransform = new SoundTransform();
public var _URL:String;
public var flvUrl:String = "s";
public var dragging:Boolean = false;
public var rectangle:Rectangle = new Rectangle(0,0,100,0);
private var ba:ByteArray;
private var bn;
public function soundContainer() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event):void
{
ba = new ByteArray();
slider.x = 73.85;
slider.y = 10.95;
addChild(slider);
slider.slider_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragIt);
stage.addEventListener(MouseEvent.MOUSE_UP, dropIt);
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.start();
}
public function dragIt(e:MouseEvent):void
{
slider.slider_mc.startDrag(false, rectangle);
dragging = true;
slider.slider_mc.addEventListener(Event.ENTER_FRAME, adjustVolume);
}
public function dropIt(e:MouseEvent = null):void
{
if (dragging)
{
slider.slider_mc.stopDrag();
dragging = false;
}
}
public function adjustVolume(e:Event):void
{
var vol:Number = slider.slider_mc.x / 100;
var st:SoundTransform = new SoundTransform(vol);
SoundMixer.soundTransform = st;
}
public function playMyFlv(flvUrl)
{
_URL = flvUrl;
_video = new Video();
var connection:NetConnection = new NetConnection();
connection.connect(null);
_stream = new NetStream(connection);
_stream.soundTransform = audioTransform;
_stream.play(flvUrl);
var Client:Object = new Object();
_stream.client = Client;
_video.attachNetStream(_stream);
addChild(_video);
}
public function stopMyFlv()
{
SoundMixer.stopAll();
trace("stop");
try
{
_stream.close();
}
catch (error:IOError)
{
}
}
private function onNetStatus(e:NetStatusEvent)
{
}
private function onTimer(t:TimerEvent):Number
{
trace(_stream.info + " Data Bytes Per Second");
}
public function onIOError(e:IOError)
{
trace("Failed to load");
}
}
}
iOS不支持Netstream.info属性。iOS不支持Netstream.info属性