好吧,我有一个现有的HTML5应用程序,应该移植到Windows Phone 8.1。现有的应用程序需要一些本机访问权来发送邮件,向存储器写入/读取文件以及拍摄照片。
在我的解决方案中,我有一个Javascript Windows Phone 8.1应用程序和一个Windows Phone 8.1运行时组件。
我已经通过运行时组件管理了文件/电子邮件访问。 (Windows.ApplicationModel.*
)
我卡住了相机。目标是:
我还没有找到任何真正的方法。 我该怎么做?
到目前为止我尝试了什么:
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()崩溃时失败/一般异常。为了清楚起见,我自己并不想这样做,必须有一个简单的解决方案,对吗?
如果我无法使用此代码,是否可以导航到其他视图来管理此代码?
我必须承认,我对所有这些事情感到很困惑。
感谢。
答案 0 :(得分:0)
在开始预览之前,您需要将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来帮助您入门。