8/27/2012

Windows8のMediaCaptureでHRESULT : 0xC00DABE0のExceptionが出る場合の対処

かなり限定的な内容で申し訳ないのですが、同じ現象が出ている人が多いと思い書きます。このExceptionはSimulatorで動作させた場合やRemote Desktopで接続している場合にだけExceptionが出るので、バグかなーって思ってしまうのですが、カメラアプリやCameraCaptureUIを使用した場合はExceptionが出ないですし、気になりますよね。

デバイスの設定する

試した結果なので正確な情報じゃないかもしれませんが、デバイスの設定をすると問題なく動作するようです。デフォルトだとExceptionが出てしまいます。MediaCaptureInitializationSettingsのStreamingCaptureModeを設定するとでなくなりました。以下のようなコードです。

m_devInfoCollection = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
if (m_devInfoCollection.Count > 0)
{
    devCurrentNo = 0;
    devInfoName = m_devInfoCollection[devCurrentNo].Name;
    var settings = new Windows.Media.Capture.MediaCaptureInitializationSettings();
    var chosenDevInfo = m_devInfoCollection[devCurrentNo];
    settings.VideoDeviceId = chosenDevInfo.Id;
    settings.StreamingCaptureMode = StreamingCaptureMode.Video;
    m_mediaCaptureMgr = new Windows.Media.Capture.MediaCapture();
    await m_mediaCaptureMgr.InitializeAsync(settings);
}

StreamingCaptureModeには、AudioかAudioAndVideoかVideoをどれかを設定します。


皆さんのもうまくいくとイイですね。