Я новичок в разработке для webOS, и в настоящее время я разрабатываю приложение, в котором мне нужно сфотографировать определенного пользователя.
Я искал много ресурсов и сайтов наИнтернет, но я не могу найти решение для моей проблемы.
Я следую инструкциям, приведенным здесь:
Как сделать снимок с помощью командной строки на webOS на сенсорной панели HP?
Я хочу дать понять, что я не хочу брать фотографию из командной строки.
Я попробовал следующее:
A.Включить в мои зависимости.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.Внутри инициализированного события
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, я получаю следующий журнал в своей консоли:
info: MediaCapture:: ServiceProxy ===== MediaCapture :: _ initializeMediaServerInstanceSuccess () ... palm: //com.palm.mediad.MediaCaptureV3_1814440/, /usr/palm/frameworks/enyo/1.0/framework/lib/mediacapture/elperHia/.js: 83 [20111017-16: 52: 32.906482] информация: MediaCapture :: ServiceProxy @@@@@@ ----------- GRAB ПЕРВАЯ СОБСТВЕННОСТЬ -----------@@@@@@, /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": "аудио / vnd.wave", "кодеки": "1"}, { "битрейт": 256000, "оцифровка": 16000, "ширина": 0,»высота ": 0," MimeType ":" аудио / vnd.wave " "кодеки": "1"}, { "битрейт": 705600," sampleraт.е ": 44100," ширина ": 0," высота ": 0," MimeType ":" аудио / vnd.wave», "кодеки": "1"}, { "битрейт": 128000, "оцифровки": 8000, "ширина": 0, "высота": 0, "MimeType": "аудио / vnd.wave", "кодеки": "1"}, { "битрейт": 256000, "оцифровка": 16000, "ширина": 0, "высота": 0, "MimeType": "аудио / vnd.wave", "кодеки": "1"}, { "битрейт": 705600, "оцифровка": 44100, "ширина": 0,»высота ": 0," MimeType ":" аудио / vnd.wave», "кодеки": "1"}, { "битрейт": 128000, "оцифровка": 8000, "ширина": 0, "высота": 0, "MimeType": "аудио / vnd.wave", "кодеки": "1"}, { "битрейт": 256000, "оцифровка": 16000, "ширина": 0, "высота": 0, "MimeType": "audio / vnd.wave", "codecs": "1"}, {"bitrate": 705600, "sampl
Однако, когда приложение пытается загрузить объект mediaCapture, я получаю:
Uncaught TypeError: Невозможно прочитать свойство 'deviceKeys' из неопределенного, source / CCRecipesStep1View.js: 186
Я знаю и понимаю, что эта ошибка связана с попыткой приложенияполучить доступ к свойству, которое не существует.В данном случае конкретная строка выглядит следующим образом:
onImageCaptureInitialized: function () {
var keyString;
for(var i = 0; i < this.pb.deviceKeys.length; i++) <<------------ Here
...
..
.
}
Файл MediaCapture.js и инструкции, которым я следую, говорят о "Property Bag" , я понимаю, что именно здесь вы объявляетесвойства, однако я не знаю, как получить ключи устройства, которые мне нужны для загрузки MediaCaptureObject.
При нажатии кнопки я получаю:
MediaCapture :: ServiceProxy ####### ----------- СОБЫТИЕ ИЗМЕНИТЬ СВОЙСТВА ----------- ###### 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] info: MediaCapture :: ServiceProxy
# ----------- ИЗМЕНИТЬ СВОЙСТВА СОБЫТИЙ ----------- ###### vuData,
/ usr /пальмовые / рамки / ENYO / 1,0 / рамки / Библиотека / mediacapture / помощник / MediaCaptureProxyHelper.js: 140 [20111017-17: 07: 35.885940] info: MediaCapture :: ServiceProxy
# ----------- ИЗМЕНИТЬ СВОЙСТВО СВОЙСТВ ----------- ###### vuData,
/ USR / пальмовое / рамки / ENYO / 1,0 / рамки / Библиотека / mediacapture / хелперы / MediaCaptureProxyHelper.js: 140
И начать бесконечный цикл: S
Надеюсь, вы поможете мне.
Это приложение очень важно.
Спасибо.