CameraCaptureDialogで動画撮影

今回は、カメラを使って動画録画を行う方法をご紹介します。

Microsoft.WindowsMobile.Forms 名前空間の CameraCaptureDialog クラスを利用する事で簡単に動画録画を行う事が出来ます。

以下に、サンプルコードを示します。

VB.NET

   ' 以下の名前空間を指定します
   ' Imports Microsoft.WindowsMobile.Forms
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
       Dim cameraCapture As New CameraCaptureDialog()
 
       cameraCapture.Owner = Nothing
       cameraCapture.InitialDirectory = "\My Documents"
       cameraCapture.DefaultFileName = "test.3gp"
       cameraCapture.Title = "Camera Demo"
       cameraCapture.Resolution = New Size(176, 144)
       cameraCapture.VideoTimeLimit = new TimeSpan(0, 0, 15)
       cameraCapture.Mode = CameraCaptureMode.VideoWithAudio
       cameraCapture.VideoTypes = CameraCaptureVideoTypes.Messaging
 
       ' カメラアプリを起動します
       cameraCapture.ShowDialog()
 
   End Sub

C#

   // 以下の名前空間を指定します
   // Using Microsoft.WindowsMobile.Forms;
 
   private void Button1_Click(System.Object sender, System.EventArgs e)
   {
       CameraCaptureDialog cameraCapture = new CameraCaptureDialog();
 
       cameraCapture.Owner = null;
       cameraCapture.InitialDirectory = "\\My Documents";
       cameraCapture.DefaultFileName = "test.3gp";
       cameraCapture.Title = "Camera Demo";
       cameraCapture.Resolution = new Size(176, 144);
       cameraCapture.VideoTimeLimit = new TimeSpan(0, 0, 15);
       cameraCapture.Mode = CameraCaptureMode.VideoWithAudio;
       cameraCapture.VideoTypes = CameraCaptureVideoTypes.Messaging;
 
       // カメラアプリを起動します
       cameraCapture.ShowDialog();
   }

上記のコードを実行してみました。

ビデオのみを録画する

アテレコする等の目的で音声を録音せずに、動画のみ録画したい場合は、CameraCaptureDialog の Mode プロパティを CameraCaptureMode.VideoOnly に変更します。

VB.NET

       ' ビデオのみ録画するモードに設定する
       cameraCapture.Mode = CameraCaptureMode.VideoOnly

C#

       // ビデオのみ録画するモードに設定する
       cameraCapture.Mode = CameraCaptureMode.VideoOnly;

画質を選択する

上記の動画録画用のサンプルコードでは、Eメール添付用の動画を録画する設定になっていましたが、高品質の動画を録画したい場合、CameraCaptureDialog の VideoTypes プロパティを変更します。

設定可能な設定値は以下の通りです。

All なんでもOK!
Messaging Eメールに添付可能な品質のビデオ(3GPP)を録画します。
Standard 最も高品質のビデオを録画します。

VB.NET

       ' 高品質の画像の設定にする
       cameraCapture.VideoTypes = CameraCaptureVideoTypes.Standard

C#

       // 高品質の画像の設定にする
       cameraCapture.VideoTypes = CameraCaptureVideoTypes.Standard;