Таким образом, сделать это с помощью luna-send довольно сложно и технически не поддерживается.
Возможно, вы захотите воспользоваться библиотекой MediaCapture, которую можно найти на устройстве здесь:
/usr/palm/frameworks/enyo/0.10/framework/lib/mediacapture
Чтобы включить его в ваше приложение enyo, добавьте в файл depen.js следующее:
"$enyo-lib/mediacapture/"
Есть три основных этапа.
- Инициализация компонента
- Захват изображения
- Разгрузка устройства.
Вот пример:
Объявление компонента в вашей сцене
{
kind: "enyo.MediaCapture", name:"mediaCaptureObj",
onLoaded:"_setUpLoadedState", onInitialized:"_setUpInitializedState",
onImageCaptureStart:"_onImageCaptureStart", onImageCaptureComplete:"_onImageCaptureComplete",
onAutoFocusComplete:"_onAutoFocusComplete", onError:"_handleError",
onElapsedTime:"_onElapsedTime", onVuData:"_onVuDataChange", onDuration:"_onDuration"
}
Вызовите метод инициализации :
this.$.mediaCaptureObj.initialize(this.$.ViewPort);
В вашем инициализированном обратном вызове
Используйте сумку свойств, чтобы определить количество доступных устройств. Обычно описаниями являются «Камера / видеокамера», «Передний микрофон» и «Камера, обращенная к пользователю»
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.$.mediaCaptureObj.load(keyString, formatObj);
}
Сфотографируйте .
var obj = {"exifData":"{\"make\": \"Palm\", \"model\": \"Pre3\", \"datetime\": \"2011:05:19 10:39:18\", \"orientation\": 1, \"geotag\": {}}","quality":90,"flash":"FLASH_ON"};
this.$.mediaCaptureObj.startImageCapture("", obj);
Выгрузить устройство :
this.$.mediaCaptureObj.unload();
Чтобы сделать это со старыми платформами JS, смотрите:
https://developer.palm.com/content/api/reference/javascript-libraries/media-capture.html
Теперь вы можете сделать что-то похожее с luna-send, но опять же, я не думаю, что это технически поддерживается. У вас могут возникнуть проблемы с запуском / поддержкой службы захвата мультимедиа и т. Д. НО , если вы хотите попробовать, вы можете сделать что-то вроде:
1. получить экземпляр медиа-сервера --- это возвращает номер экземпляра порта
luna-send -a your.app.id -i palm://com.palm.mediad/service/captureV3 '{"args":["subscribe":true]}'
Это вернет местоположение службы захвата с номером порта, например:
{"returnValue":true, "location":"palm://com.palm.mediad.MediaCaptureV3_7839/"}
Поскольку это подписка, не отменяйте запрос. Просто откройте новый терминал.
2. Откройте новый терминал . Используйте «местоположение», возвращенное на шаге 1, в качестве нового URI службы:
luna-send -a your.app.id -i palm://com.palm.mediad.MediaCaptureV3_7839/load '{"args":["video:1", {"videoCaptureFormat":{"bitrate":2000000,"samplerate":44100,"width":640,"height":480,"mimetype":"video/mp4","codecs":"h264,mp4a.40"},"imageCaptureFormat":{"bitrate":0,"samplerate":1700888,"width":640,"height":480,"mimetype":"image/jpeg","codecs":"jpeg"},"deviceUri":"video:1"}]}'
Вы должны увидеть:
{"returnValue":true}
, если звонок завершен правильно. Вы можете безопасно ctrl + c из этого вызова.
3. Сфотографируйте. (вы можете нажать ctrl + c из последнего вызова и просто поставить аргументы здесь)
luna-send -a your.app.id -i palm://com.palm.mediad.MediaCaptureV3_7839/startImageCapture '{"args":["", {"exifData":"{\"orientation\": 1, \"make\": \"HP\", \"model\": \"TouchPad\", \"datetime\": \"2011:09:22 15:34:36\", \"geotag\": {}}","quality":90,"flash":"FLASH_DISABLED","orientation":"faceup"}]}'
Опять вы должны увидеть:
{"returnValue":true}
, если звонок завершен правильно.
Вы должны услышать щелчок затвора, и изображение отобразится в приложении "Фотографии" в вашем Фотопленке.