as3コードを使用してiPadでフロントカメラを取得できましたが、ビデオの品質は非常に低くなっています。以下のコードを使用しました
camera=Camera.getCamera(frontcamIndex);
camera.setQuality (0,90);
user1video.width = 320;
user1video.height =240;
user1video.attachCamera(camera);
as3コードを使用してiPadでフロントカメラを取得できましたが、ビデオの品質は非常に低くなっています。以下のコードを使用しました
camera=Camera.getCamera(frontcamIndex);
camera.setQuality (0,90);
user1video.width = 320;
user1video.height =240;
user1video.attachCamera(camera);
以下のコードについて setMode 関数を設定します。
camera.setMode(320, 240, <#your value#>);
次のドキュメントを参照してください。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#setMode()
そして私は CameraUI をお勧めします。CameraUI クラスを使用すると、デバイスの既定のカメラ アプリケーションを使用して、静止画像またはビデオをキャプチャできます。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/CameraUI.html
次の例では、CameraUI クラスを使用して、デバイスで既定のカメラ アプリケーションを起動します。ユーザーが写真を撮ると、この例では画像を表示リストに配置します。
package {
import flash.desktop.NativeApplication;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.ErrorEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MediaEvent;
import flash.media.CameraUI;
import flash.media.MediaPromise;
import flash.media.MediaType;
public class CameraUIStillImage extends MovieClip{
private var deviceCameraApp:CameraUI = new CameraUI();
private var imageLoader:Loader;
public function CameraUIStillImage() {
this.stage.align = StageAlign.TOP_LEFT;
this.stage.scaleMode = StageScaleMode.NO_SCALE;
if( CameraUI.isSupported )
{
trace( "Initializing camera..." );
deviceCameraApp.addEventListener( MediaEvent.COMPLETE, imageCaptured );
deviceCameraApp.addEventListener( Event.CANCEL, captureCanceled );
deviceCameraApp.addEventListener( ErrorEvent.ERROR, cameraError );
deviceCameraApp.launch( MediaType.IMAGE );
}
else
{
trace( "Camera interface is not supported.");
}
}
private function imageCaptured( event:MediaEvent ):void
{
trace( "Media captured..." );
var imagePromise:MediaPromise = event.data;
if( imagePromise.isAsync )
{
trace( "Asynchronous media promise." );
imageLoader = new Loader();
imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, asyncImageLoaded );
imageLoader.addEventListener( IOErrorEvent.IO_ERROR, cameraError );
imageLoader.loadFilePromise( imagePromise );
}
else
{
trace( "Synchronous media promise." );
imageLoader.loadFilePromise( imagePromise );
showMedia( imageLoader );
}
}
private function captureCanceled( event:Event ):void
{
trace( "Media capture canceled." );
NativeApplication.nativeApplication.exit();
}
private function asyncImageLoaded( event:Event ):void
{
trace( "Media loaded in memory." );
showMedia( imageLoader );
}
private function showMedia( loader:Loader ):void
{
this.addChild( loader );
}
private function cameraError( error:ErrorEvent ):void
{
trace( "Error:" + error.text );
NativeApplication.nativeApplication.exit();
}
}
}