javascript - Windows Phone 8.1 Javascript 应用程序 - 使用相机

标签 javascript c# windows-phone-8

嗯,我有一个现有的 HTML5 应用程序,应该将其移植到 Windows Phone 8.1。现有的应用程序需要一些 native 访问来发送邮件、向/从存储写入/读取文件以及拍照。

在我的解决方案中,我有一个 Javascript Windows Phone 8.1 应用程序和一个 Windows Phone 8.1 运行时组件。 我已经通过运行时组件管理文件/电子邮件访问。 (Windows.ApplicationModel.*)

我被卡住了哪个相机。目标是:

  • Javascript 调用“takePicture(回调)”
  • 本地拍照(如何?!)
  • 将其保存到存储
  • 使用数据/文件执行回调

我还没有找到任何真正的方法。 我该怎么做?

到目前为止我尝试过的:

public async void takePicture(PhotoSuccessCallback scb, PhotoErrorCallback ecb)
    {
        var x = new MediaCapture();
        var settings = new MediaCaptureInitializationSettings();
        settings.PhotoCaptureSource = PhotoCaptureSource.Photo;
        await x.InitializeAsync(settings);
        await x.StartPreviewAsync();
    }

此代码片段在 StartPreviewAsync() 时崩溃,出现无用/通用异常。需要澄清的是,我真的不想自己这样做,必须有一个简单的解决方案,对吗?

如果我无法使用此代码,是否可以导航到其他 View 来管理此代码?

我必须承认,我对所有这些东西感到非常困惑。

谢谢。

最佳答案

在开始预览之前,您需要将 MediaCapture 作为源分配给可以显示预览的控件。

我相信 JavaScript 会是这样的:

var previewVidTag = document.getElementById("cameraPreview");
var previewUrl = URL.createObjectURL(x);
previewVidTag.src = previewUrl;
previewVidTag.play();

previewVidTag.addEventListener("playing", function () {
    // preview has started
});

你的 HTML 应该是这样的:

<video id="cameraPreview" class="cameraPreview"></video>

我相信您应该能够引用Windows 10 CameraStarterKit SDK sample让您开始。

关于javascript - Windows Phone 8.1 Javascript 应用程序 - 使用相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114527/

相关文章:

javascript - 我可以在 React.js 中更新组件的 props 吗?

javascript - 如何*仅*在第一个在 rxjs 中“完全”完成后启动第二个可观察的

c# - 如何根据优先级组合列表

c# - MediaComposition.RenderToFileAsync 因许多静态图像而崩溃

c# - LongListSelector 中的滚动管理

java - 模拟 JSP 的 post 方法与创建 API

javascript - 没有 api key 的 Google 静态 map 给出 403(禁止)错误

c# - Razor 引擎库在 azure 函数上引发错误

c# - 如何防止 MyISAM 大表崩溃

c# - SQLITE 内连接 Windows Phone 8