嗯,我有一个现有的 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/