2011-01-19 8 views
2

私はちょうど私がGoogleで何も見つけられなかったと信じることができません、私はそれがDUMBの質問かもしれないと思って始めているが、私は尋ねなければならない。ウェブカメラの解像度の検出

ウェブカメラでサポートされている最大解像度を取得したい場合、どうすればよいですか?

これは私の実際のコードです:

// 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は160×120にその解像度を設定し、Infactはトレースが私に160×120の値を返します。私はコメントを解除した場合

  • は、640×480は

...トレースは私にOKである640×480値を返しますが、これは、静的な値であり、私はウェブカメラの解像度であるかを理解したい任意のヒントをSETMODE ?

答えて

7

見つけるための一つの方法があります:

あなたの要求された解像度に一致できるだけ近い値に、カメラの高さと幅を設定しますCamera.setMode。したがって、4:3のアスペクト比を選択してサイズを8192x6144に設定すると、カメラの最高解像度を得ることができます。ちょうど確かめるために、16:9または16:10の比率を試して、どちらが最良の結果を返すかを確認することもできます。

+1

ありがとうございます。それは愚かです。 –

2

同じ感じです! Googleの誰も特別なトークなしで簡単な答えを与えることはできません! ここにあります:

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上で、それは関係なく、カメラの機能を1920×1080までのすべてのサイズを許可していることを発見しています。アスペクト比が間違っているかどうかにかかわらず、HDサイズに設定されます。私はまだ回避策が見つかりませんでした。