gpt4 book ai didi

c# - Windows Phone 8.1 MediaCapture 卡住手机

转载 作者:IT王子 更新时间:2023-10-29 04:28:06 26 4
gpt4 key购买 nike

我想制作一个简单的应用程序,允许我检查预览每一帧的几个参数,但我在运行和停止预览时卡住了。

    /// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
MediaCapture _MediaCapture;
bool _recording;
public MainPage()
{
this.InitializeComponent();

this.NavigationCacheMode = NavigationCacheMode.Required;
}

/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached.
/// This parameter is typically used to configure the page.</param>
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);


var rearCamera = devices[0];
if (devices.Count > 0)
{

rearCamera = devices.Single(currDev =>
currDev.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back
);
}

_MediaCapture = new MediaCapture();
await _MediaCapture.InitializeAsync(new MediaCaptureInitializationSettings() { VideoDeviceId = rearCamera.Id });

// this is CaptureElement
xCapture.Source = _MediaCapture;

_recording = false;
}

protected override async void OnNavigatedFrom(NavigationEventArgs e)
{
if(_MediaCapture != null)
{
await _MediaCapture.StopPreviewAsync();
await _MediaCapture.StopRecordAsync();

_MediaCapture.Dispose();
_MediaCapture = null;

xCapture.Source = null;
}


base.OnNavigatedFrom(e);


}

// button click handler
private async void StartMeasure(object sender, RoutedEventArgs e)
{
if (_recording)
{
//await _MediaCapture.StopPreviewAsync();
_MediaCapture.VideoDeviceController.TorchControl.Enabled = false;
_recording = false;
}
else
{
//await _MediaCapture.StartPreviewAsync();
_MediaCapture.VideoDeviceController.TorchControl.Enabled = true;
_recording = true;
}
}
}

在这种形式下它工作得很好。

如果我取消注释那些预览行,它会起作用,但只有一次。

如果我按下按钮三次:打开、关闭和再次打开,我会在启用 TorchControl 时遇到异常。

System.Exception:来自 HRESULT 的异常:Windows.Media.Devices.TorchControl.put_Enabled( bool 值)在 Pulsometr3.MainPage.d__d.MoveNext() 处的 0xE801000D

HRESULT 不同。

更奇怪的是,它有时会死机(大约 3 次中有 2 次),我需要按住电源 + 降低音量。

我尝试用 [STAThread] 装饰所有方法,但它没有帮助( http://technet.microsoft.com/en-ca/br226599 )。

更有趣的是,当我使用 F10 来跨行执行调试器操作时,我可以根据需要多次切换预览。这很奇怪,因为调试器拥有所有线程,对吧?那么理论上没有区别吗?

此外,电话有时会在部署时卡住...这很烦人。

有什么想法吗?

最佳答案

我对此很感兴趣...出于某种原因,微软不太关心它是 WP8 的后继操作系统,这让我非常难过。但这也是半年前的夏天,我试过这个,也许你可以尝试谷歌搜索应用程序许可并仔细检查你的应用程序 list ,如果你有前置/后置摄像头和网络摄像头:)此外如果它不起作用,那么运气不好,你应该坚持使用 wp 8.0 版本,它在 wp 8.1 上的工作原理完全相同所以不用担心 :) 其他库如 facebook stuff 或 parse.com 也不起作用在 wp 8.1 C# :)

关于c# - Windows Phone 8.1 MediaCapture 卡住手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com