MediaCaptureで音声を録音するには

初期化

WindowsRuntimeで録画、録音するにはMediaCaptureを使います。

MediaCapture mediaCapture = null;

DeviceInformationCollectionからオーディオキャプチャデバイスを取得し、MediaCaptureのInitializeAsyncメソッドで初期化を行います。

その際、MediaCaptureInitializationSettingsクラスでオーディオデバイスのIDを渡します。

DeviceInformationCollection audioDevices = await DeviceInformation.FindAllAsync(DeviceClass.AudioCapture);
DeviceInformation audioId = audioDevices.ElementAt(0);

var setting = new MediaCaptureInitializationSettings();

setting.AudioDeviceId = audioId.Id;
mediaCapture = new MediaCapture();

await mediaCapture.InitializeAsync(setting);

 

録音開始

StorageFileにWavファイルとして保存する場合は、MediaCaptureのStartRecordToStorageFileAsyncメソッドにMediaEncodingProfileクラスのCreateWavメソッドを渡します。

この命令が実行されたあと、録音開始まで少し時間が空きます。

StorageFile recordFile=await KnownFolders.MusicLibrary.CreateFileAsync("record.wav",CreationCollisionOption.ReplaceExisting);

await mediaCapture.StartRecordToStorageFileAsync(MediaEncodingProfile.CreateWav(AudioEncodingQuality.Medium),recordFile);

 

録音終了

録音を終了するには

MediaCaptureのStopRecordAsyncメソッドを呼びます。

await mediaCapture.StopRecordAsync();

 

マニフェストファイルの編集

今回はミュージックライブラリとマイク、Webカメラは使いませんがチェックしないとMediaCaptureを初期化できないためチェックします。

11

garicchi
対話システムとSFとアニメが好き たまにMicrosoftコミュニティに出現します たまに日経Linuxとラズパイマガジンで記事を書いたり Microsoft MVP 2014~2018(引退済み)

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください