Javascript 如何在Enyo(webOS)中使用MediaCapture拍照?

Javascript 如何在Enyo(webOS)中使用MediaCapture拍照?,javascript,webos,enyo,Javascript,Webos,Enyo,我是一名网络操作系统开发新手,目前 开发一个应用程序,我需要在其中拍照 某个用户 我一直在网上寻找许多资源和网站 但我找不到解决问题的办法 我遵循此处列出的说明: 我想说清楚,我不想从命令行拍摄照片 我尝试了以下方法: A.包含在my depends.js中 "$enyo/../lib/mediacapture/" B.在我的场景中 enyo.kind({ name: "MyComponent", kind: "Pane", components: [ { kind:

我是一名网络操作系统开发新手,目前 开发一个应用程序,我需要在其中拍照 某个用户

我一直在网上寻找许多资源和网站 但我找不到解决问题的办法

我遵循此处列出的说明:

我想说清楚,我不想从命令行拍摄照片

我尝试了以下方法:

A.包含在my depends.js中

"$enyo/../lib/mediacapture/"
B.在我的场景中

enyo.kind({
name: "MyComponent",
kind: "Pane",
components: [
    {
        kind: "enyo.MediaCapture",
        name: "mediaCapture",
        onInitialized: "onImageCaptureInitialized",
        onError: "onImageCaptureError",
        onImageCaptureComplete: "onImageCaptureComplete"
    }
],
...
..
.
});
C.在onCreate函数中

create: function () {
    this.inherited(arguments);
    this.$.mediaCapture.initialize(this.$.ViewPort);
},
takePhotoClickEvent: function (inSender) {      

    this.$.mediaCapture.startImageCapture("/media/internal/CanalCocina/recipe_photo.jpg",
        { 
            "bitrate":128000,
            "samplerate":8000,
            "width":480,
            "height":320,
            "mimetype":"image/jpeg",
            "codecs":"jpeg"}
        );  
},
D.在初始化事件中

onImageCaptureInitialized: function () {
    var keyString;                              
    for(var i = 0; i < this.pb.deviceKeys.length; i++) {
        if(this.pb.deviceKeys[i].description.indexOf("Camera/Camcorder") >= 0) {
              keyString = this.pb.deviceKeys[i].deviceUri;
              break;
        }
    }

    if(keyString) {
        var formatObj = {imageCaptureFormat: this.pb[keyString].supportedImageFormats[0]};
        this.$.mediaCapture.load(keyString, formatObj);
    }
},
当我在HP TouchPad上运行应用程序时,我会在控制台中获得下一个日志:

信息:MediaCapture::ServiceProxy===== MediaCapture::_initializeMediaServerInstanceSuccess() ...palm://com.palm.mediad.MediaCaptureV3_1814440/, /usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:83 [20111017-16:52:32.906482]信息:MediaCapture::ServiceProxy @@@@@@-----------第一个属性抓取-----------@@@@, /usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:106 [20111017-16:52:32.913991]信息:MediaCapture::ServiceProxy 答复: {“propertyValues”:[{“name”:“ready”,“value”:false},{“name”:“supportedAudioFormats”,“value”:[{“bitrate”:128000,“samplerate”:8000,“width”:0,“height”:0,“mimetype”:“audio/vnd.wave”,“codecs”:“1”{“bitrate”:256000,“samplerate”:16000,“width”:0,“height”:0,“mimetype”:“audio/vnd.wave”,“codecs”:“1”{“bitrate”:705600,“samplerate”:44100,“width”:0,“height”:0,“mimetype”:“audio/vnd.wave”,“codecs”:“1”},{“bitrate”:128000,“samplerate”:8000,“width”:0,“height”:0,“mimetype”:“audio/vnd.wave”,“codecs”:“1”},{“bitrate”:705600,“samplerate”:44100,“width”:0,“height”:0,“mimetype”:“audio/vnd.wave”,“codecs”:“1”{比特率:128000,“采样率”:8000,“宽度”:0,“高度”:0,“mimetype”:“音频/vnd.wave”,“编解码器”:“1”},{“比特率”:256000,“采样率”:16000,“宽度”:0,“高度”:0,“mimetype”:“音频/vnd.wave”,“编解码器”:“1”},{“比特率”:705600,“sampl”

但是,当应用程序尝试加载mediaCapture对象时,我得到:

未捕获的TypeError:无法读取未定义的, source/CCRecipesStep1View.js:186

我知道并且我理解这个错误是因为应用程序试图访问一个不存在的属性 如果特定行为:

onImageCaptureInitialized: function () {
    var keyString;                              
    for(var i = 0; i < this.pb.deviceKeys.length; i++)    <<------------ Here
    ...
    ..
    .
}
onImageCaptureInitialized:函数(){ var键串;
对于(var i=0;i
它附带了一个拍照的MediaCapture示例应用程序。获取设备URI的方法与您正在做的完全不同,initialize方法获取格式列表作为参数。

您查看了3.0.4 SDK中的示例吗


它附带了一个拍照的MediaCapture示例应用程序。获取设备URI的方法与您正在做的完全不同,初始化方法获取格式列表作为参数。

是的,实际上是3或4天前发布的。在webOS 3.0.2中,相机不可用。我将提前编辑我的问题。谢谢。Yes、 实际上,发布时间是3或4天前。在webOS 3.0.2中,摄像头不可用。我将提前编辑我的问题。谢谢。