首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与MediaCapture (webOS)合影?

如何与MediaCapture (webOS)合影?
EN

Stack Overflow用户
提问于 2011-10-18 00:55:13
回答 1查看 457关注 0票数 2

我是一名新手webOS开发人员,我目前正在开发一个应用程序,我需要为某个用户拍照。

我一直在互联网上寻找很多资源和网站,但我找不到解决问题的办法。

我按照这里列出的指示:

How to take a picture using command line on webOS on HP touchpad?

我想说清楚,我不想从命令行拍这张照片。

我尝试了以下几点:

A.包括在我的depends.js

代码语言:javascript
复制
"$enyo/../lib/mediacapture/"

B.在我的场景中

代码语言:javascript
复制
enyo.kind({
name: "MyComponent",
kind: "Pane",
components: [
    {
        kind: "enyo.MediaCapture",
        name: "mediaCapture",
        onInitialized: "onImageCaptureInitialized",
        onError: "onImageCaptureError",
        onImageCaptureComplete: "onImageCaptureComplete"
    }
],
...
..
.
});

C.在onCreate函数

代码语言:javascript
复制
create: function () {
    this.inherited(arguments);
    this.$.mediaCapture.initialize(this.$.ViewPort);
},

D.在onInitialized事件

代码语言:javascript
复制
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);
    }
},

D.在某个按钮的onclick事件中

代码语言:javascript
复制
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"}
        );  
},

当我在HP TouchPad上运行这个应用程序时,我会在我的控制台中获得下一个日志:

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 info: MediaCapture::ServiceProxy inResponse:{“propertyValues”:[{“名称”:“就绪”,“值”:假},{“名称”:“supportedAudioFormats”,“值”:[{“比特率”:128000,“采样率”:8000,“宽度”:0,“高度”:0,“mimetype”:“mimetype”:“音频/vnd.Wave”,“编解码器”:“1”},{“比特率”:256000,“样本”:16000,“宽度”:0,“高度”:0,“mimetype”:“音频/vnd.Wave”,“编解码器”:“1”},{“比特率”:705600,“样本”:44100,“宽度”:0,“高度”:0,“mimetype”:“音频/vnd.Wave”,"codecs":"1"},{“位速率”:128000,"samplerate":8000,“宽度”:0、“高度”:0、“mimetype”:“音频/vnd.Wave”、"codecs":"1"}、{“位速率”:256000、"samplerate":16000、“宽度”:0、“高度”:0、“mimetype”:“音频/vnd.Wave”、"codecs":"1"}、{“位速率”:705600、“采样率”:44100、“宽度”:0、“高度”:0、“mimetype”:“音频/vnd.Wave”,“编解码器”:“1”},{“比特率”:128000,“样本”:128000,“宽度”:0,“高度”:0,“mimetype”:“音频/vnd.Wave”,"codecs":"1"},{“位速率”:256000,“样本”:16000,“宽度”:0,“高度”,“mimetype”:“音频/vnd.Wave”,"codecs":"1"},{“位率”:705600,"sampl“

然而,当应用程序试图加载mediaCapture对象时,我得到:

Uncaught :无法读取未定义的源/CCRecipesStep1View.js:186的属性“deviceKeys”

我知道并理解这个错误是因为应用程序试图访问一个不存在的属性。在这种情况下,具体的一行是:

代码语言:javascript
复制
onImageCaptureInitialized: function () {
    var keyString;                              
    for(var i = 0; i < this.pb.deviceKeys.length; i++)    <<------------ Here
    ...
    ..
    .
}

文件MediaCapture.js和我遵循的说明谈到了“属性包”,我知道这里是您声明属性的地方,但是我不知道如何获得加载MediaCaptureObject所需的设备密钥。

当按下按钮时,我得到:

:ServiceProxy#

事件-#vuData, 20111017-17:07:35.401836信息: MediaCapture::ServiceProxy

#

#

#

并启动一个无限循环:S

希望你能帮我。这个应用程序非常重要。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-10-22 17:56:18

您看过3.0.4SDK中的示例吗?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7801330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档