2

私は一種の初心者の webOS 開発者で、現在、特定のユーザーの写真を撮る必要があるアプリを開発しています。

インターネットで多くのリソースやサイトを探していますが、問題の解決策が見つかりません。

ここにリストされている指示に従います。

HP タッチパッドの webOS でコマンドラインを使用して写真を撮るには?

コマンドラインから写真を撮りたくないことを明確にしたいと思います。

私は次のことを試しました:

A. 私の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);
},

D. onInitialized イベントの内部

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 イベント内

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 タッチパッドでアプリを実行すると、コンソールに次のログが表示されます。

情報: 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 inResponse : {"propertyValues":[{"name":"ready","value":false},{"name":"supportedAudioFormats","value":[{"bitrate":128000,"samplerate":8000, "幅":0,"高さ":0,"mimetype":"audio/vnd.wave","codecs":"1"},{"bitrate":256000,"samplerate":16000,"width":0,"height":0,"mimetype":"audio/vnd.wave","codecs":" 1"},{"ビットレート":705600,"サンプルレート":44100,"幅":0,"高さ":0,"mimetype":"audio/vnd.wave","コーデック":"1"}, {"ビットレート":128000,"サンプルレート":8000,"幅":0,"高さ":0,"mimetype":"audio/vnd.wave","コーデック":"1"},{"ビットレート" :256000,"サンプルレート":16000,"幅":0,"高さ":0,"mimetype":"audio/vnd.wave","コーデック":"1"},{"ビットレート":705600,"サンプルレート":44100,"幅":0,"高さ":0,"mimetype":"audio/vnd.wave","codecs":"1"},{"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.波","コーデック":"1"},{"ビットレート":705600,"サンプル波","コーデック":"1"},{"ビットレート":705600,"サンプル波","コーデック":"1"},{"ビットレート":705600,"サンプル

ただし、アプリが mediaCapture オブジェクトを読み込もうとすると、次のようになります。

キャッチされていない TypeError: 未定義のプロパティ 'deviceKeys' を読み取ることができません, source/CCRecipesStep1View.js:186

アプリが存在しないプロパティにアクセスしようとしたため、このエラーが発生したことを理解しています。この場合、特定の行は次のとおりです。

onImageCaptureInitialized: function () {
    var keyString;                              
    for(var i = 0; i < this.pb.deviceKeys.length; i++)    <<------------ Here
    ...
    ..
    .
}

ファイル MediaCapture.js と私が従う手順では、「プロパティ バッグ」について説明しています。ここでプロパティを宣言することは理解していますが、MediaCaptureObject をロードするために必要なデバイス キーを取得する方法がわかりません。

ボタンが押されると、次のようになります。

MediaCapture::ServiceProxy #######----------- CHANGE PROPERTIES EVENT -----------######vuData , /usr/palm/frameworks /enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:140 [20111017-17:07:35.401836] 情報: MediaCapture::ServiceProxy

#---------- プロパティ変更イベント -----------######vuData ,

/usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:140 [20111017-17:07:35.653586] 情報: MediaCapture::ServiceProxy

#---------- プロパティ変更イベント -----------######vuData ,

/usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:140 [20111017-17:07:35.885940] 情報: MediaCapture::ServiceProxy

#---------- プロパティ変更イベント -----------######vuData ,

/usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/helper/MediaCaptureProxyHelper.js:140

そして、無限ループを開始します:S

あなたが私を助けてくれることを願っています。このアプリは非常に重要です。

ありがとうございました。

4

1 に答える 1

0

3.0.4 SDK のサンプルを見ましたか?

写真を撮るMediaCaptureサンプルアプリが付属しています。を取得するメソッドdeviceUriは、実行しているものとはまったく異なります。初期化メソッドは、フォーマット リストを引数として取得します。

于 2011-10-22T17:56:18.007 に答える