2012-06-13 101 views
0

我有一个20分钟的FLV,在服务器上流传输很好。客户端希望保留会话之间的用户位置,以便将time()保存到mySQL并作为FlashVar传回,并且(如果已设置)传递给seek()和文本字段以进行测试。事情是seek()在本地正常工作,但在服务器上,无论seek()设置为什么,我都会收到NetStream.Seek.InvalidTime错误。 Docs是here;这是一个简单的功能。Flash NetStream.seek方法适用于本地测试,但不适用于服务器

//编辑只需添加关键帧使用http://www.buraks.com/flvmdi/为FLV,但这并没有解决问题

src = "videos/LivingProof.flv"; 

nc = new NetConnection(); 
nc.connect(null); 
nets = new NetStream(nc); 
mc_flv.attachVideo(nets); 

//Attach your netstream audio to a movielcip: 
snd.attachAudio(nets); 
// create a sound object 
my_snd = new Sound(snd); 
// to adjust the volume 
my_snd.setVolume(50); 
nets.play(src); 

if (starttime) { 
    var dest:Number = Math.floor(starttime); 
    nets.seek(dest); 
    this.test.text = 'target time = ' + dest; 
} 

nets.onStatus = function(infoObject:Object) { 
    if(infoObject.level == "status" && infoObject.code == "NetStream.Play.Stop") { 
     getURL("javascript:setTime('9999999999');", "_self"); 
     nets.seek(0); 
     nets.pause(); 
     mc_play.gotoAndStop(1); 
     trace('onStatus listener fired'); 
    } else if (infoObject.code == "NetStream.Seek.InvalidTime") { 
     _root.test.text = "NetStream.Seek.InvalidTime"; 
     nets.seek(infoObject.details); 
    } 
    _root.status.text = infoObject.code; 
}; 

有谁见过这个?

回答

1

尝试增加if语句来你onStatus处理程序来检查NetStream.Play.Start代码和移动寻求逻辑是:

src = "videos/LivingProof.flv"; 

nc = new NetConnection(); 
nc.connect(null); 
nets = new NetStream(nc); 
mc_flv.attachVideo(nets); 

//Attach your netstream audio to a movielcip: 
snd.attachAudio(nets); 
// create a sound object 
my_snd = new Sound(snd); 
// to adjust the volume 
my_snd.setVolume(50); 
nets.play(src); 

nets.onStatus = function(infoObject:Object) { 
    if(infoObject.level == "status" && infoObject.code == "NetStream.Play.Stop") { 
     getURL("javascript:setTime('9999999999');", "_self"); 
     nets.seek(0); 
     nets.pause(); 
     mc_play.gotoAndStop(1); 
     trace('onStatus listener fired'); 
    } else if (infoObject.code == "NetStream.Play.Start) { 
     if (starttime) { 
      var dest:Number = Math.floor(starttime); 
      nets.seek(dest); 
      this.test.text = 'target time = ' + dest; 
     } 
    } else if (infoObject.code == "NetStream.Seek.InvalidTime") { 
     _root.test.text = "NetStream.Seek.InvalidTime"; 
     nets.seek(infoObject.details); 
    } 
    _root.status.text = infoObject.code; 
}; 
相关问题