2011-01-19 135 views
2

我簡直不敢相信我在谷歌上找不到任何東西,我開始認爲這可能是一個愚蠢的問題,但我不得不問。網絡攝像頭解析檢測

我想獲得攝像頭支持的最大分辨率,我該怎麼做?

這是我的實際代碼:

// Maximum amount of bandwidth that the current 
// outgoing video feed can use, in bytes per second. 
var bandwidth:int = 0; 
var quality:int = 100; // This value is 0-100 with 1 being the lowest quality. 


var cam:Camera = Camera.getCamera(); 
if(cam==null) 
    writeErrorPopup(NOCAMERA_ERR); 
else 
{ 
    cam.addEventListener(StatusEvent.STATUS,statusHandler); 
    function statusHandler(evt:StatusEvent):void 
    { 
    if(cam.muted) 
    { 
    writeErrorPopup(CAMPERMISSION_ERR); 
    } 
    else 
    { 
    trace(cam.width); 
    } 
    }  

cam.setQuality(bandwidth, quality); 
//cam.setMode(640,480,30,false); 
// setMode(videoWidth, videoHeight, video fps, favor area) 

我所瞭解的是:

  • 任何攝像頭的默認setMode設置它的分辨率爲160x120,以及逸岸跟蹤返回我的160x120的價值。

  • 如果我取消了640×480 setmode跟蹤返回我的640x480的價值,這是確定的,但是這是一個靜態值,我想了解這是攝像頭的分辨率..

任何暗示?

回答

7

還有一個辦法,找出:

Camera.setMode設置攝像機的高度和寬度,到最近的可能值符合要求的分辨率。因此,如果選擇4:3的寬高比並將尺寸設置爲8192x6144,則應該能夠獲得相機的最高分辨率。只是爲了確保,你也可以嘗試16:9或16:10的比例,並看看哪個返回最佳結果。

+1

非常感謝。這很愚蠢。 – 2011-01-19 12:54:17

2

同樣的感覺!沒有人在谷歌可以給一個簡單的答案,沒有特別的談話! 這是:

var cam:Camera = Camera.getCamera(); 
if (cam != null) 
{ 
var vid:Video = new Video(cam.width, cam.height); 

// setmode(width, height, framerate); 
cam.setMode(2048,1536,30); 

vid.attachCamera(cam); 
addChild(vid); 
vid.width = 2048; 
vid.height =1536; 

} 
0

以上答案按錯誤順序排列。它應該是:

var cam:Camera = Camera.getCamera(); 
if (cam != null) 
{  
    cam.setMode(2048,1536,30); 
    var vid:Video = new Video(cam.width, cam.height);  
    vid.attachCamera(cam); 
    addChild(vid); 
} 

這種方法適用於Windows,但我發現,在Mac上,它允許所有規模高達1920x1080無論相機的功能。無論縱橫比是否錯誤,它都會將其設置爲HD尺寸。我還沒有找到解決方法。