所以我們有flv文件,例如我們用mx:vidodisplay來播放它。如何獲取我們目前正在使用的流幀?如何獲取當前正在播放的視頻文件的當前幀?
2
A
回答
2
可以查詢最近的關鍵幀的流元數據的當前時間
UPD
創建你需要處理它的onMetaData
調用流時:
private var metaInfo: Object;
private function initStream():void{ stream = new NetStream(conn); stream.bufferTime = 5; stream.addEventListener(NetStatusEvent.NET_STATUS, onStatus); stream.client = new Object(); stream.client.onMetaData = onMetaData;/*this is what you need*/ video.attachNetStream(stream); } private function onMetaData(info:Object):void { metaInfo = info; var tmpstr:String = ''; for(var s:String in info){ var tstr:String = s + ' = ' + info[s] + '\n'; tmpstr += tstr.indexOf('object') == -1 ? tstr : ''; for(var a:String in info[s]){ var ttstr:String = s + ':' + a + ' = ' + info[s][a] + '\n'; tmpstr += ttstr.indexOf('object') == -1 ? ttstr : ''; for(var c:String in info[s][a]){ var tttstr:String = s + ':' + a + ':' + c + ' = ' + info[s][a][c] + '\n'; tmpstr += tttstr.indexOf('object') == -1 ? tttstr : ''; } } } trace(tmpstr); }
在此跟蹤您會看到流的元數據是否包含以下項目:
搜索點:93:偏移量= 10342550
搜索點數:93:tim E = 165.799
或也許:
關鍵幀:次= 0,0.48,0.96,1.44,1.92,2.4,2.88,3.36,3.84,4.32,4.8,5.28,5.76,6.24
關鍵幀:filepositions = 1063, 95174,136998,176043,209542,239148,271062,302006,331724,363948,395039,427503,456317,483313
這取決於編碼器設置,如果你的元數據都有這種(metadata['keyframes']
,metadata['seekpoints']
等)的任何對象,你可以執行以下操作:
for (var i:int = 0; i < metaInfo['keyframes']['times'].length; i++) {
if (stream.time < metaInfo['keyframes']['times'][i]) {
var keyFrameNum: int = (metaInfo['keyframes']['times'][i] - stream.time < stream.time - metaInfo['keyframes']['times'][i - 1]) ? i : i - 1;
}
}
0
我做了一個靜態類來將netstream元數據對象解析爲as3對象。您可以使用JSON.stringify(parse(info))來檢查信息中的所有屬性。這個班只是草稿執行。可能是裏面的一些錯誤。
public class NetStreamMetaData
{
public static function parse(object:Object, isArray:Boolean = false):Object{
var ret:Object = {};
if(isArray)
ret = [];
var k:String;
for(k in object){
if(isNaN(Number(k))){
if(object[k] is Array){
ret[k] = parse(object[k], true);
}else{
ret[k] = object[k];
}
}else{
if(object[k] is Array){
ret.push(parse(object[k], false));
}else{
ret.push(object[k]);
}
}
}
return ret;
}
}
相關問題
- 1. 獲取當前正在播放的視頻的幀頻
- 2. 如何使用AVFoundation獲取在iOS中播放的視頻的當前幀?
- 3. 如何獲取當前播放視頻的當前時間?從VLC Player for Android
- 4. 獲取當前播放音頻的AVPlayer
- 5. 視頻html5:如何獲取當前播放的源
- 6. 捕獲視頻播放器中的當前幀
- 7. 如何獲取正在播放的視頻的當前位置? C#,WPF,MediaPlayer類
- 8. Wowza直播視頻 - 如何獲取當前視頻的名稱
- 9. 如何拍攝當前正在播放的視頻?
- 10. VLC-QT獲取當前視頻文件的幀率
- 11. 如何獲得當前播放的視頻中的UIWebView
- 12. Quicktime視頻:隱藏控件並獲取當前播放時間
- 13. 如何獲取當前幀?
- 14. 獲取多個視頻的當前播放時間
- 15. 獲取當前播放視頻的標題
- 16. 獲取AVPlayer播放視頻的當前時間ios
- 17. 獲取當前播放類型的HTML5視頻標籤
- 18. 如何在XBMC中獲取當前正在播放的項目?
- 19. 如何檢索當前播放HTML5音頻播放器的當前時間? (mediaelement.js)
- 20. 如何從相機獲取當前幀(視頻捕獲設備)
- 21. 如何獲取其他應用的當前正在播放的音頻
- 22. C#如何獲取WMP當前正在播放的歌曲文件路徑?
- 23. 如何暫停或停止當前正在播放的音頻?
- 24. 捕獲當前正在播放HTML5的音頻?
- 25. 在Android中獲取當前播放音頻的元數據
- 26. 如何從網頁上的嵌入式視頻獲取當前播放時間?
- 27. 如何在JTextField中顯示視頻文件的當前播放時間?
- 28. Youtube API:查看當前正在播放哪個視頻ID
- 29. 如何在Vista Media Center中獲取當前播放文件的文件名?
- 30. 如何使用JavaScript和HTML5播放器更改當前正在播放的YouTube視頻的播放速度?
以及如何做這樣的事情? – Rella 2010-12-06 15:14:55