Плагин PhoneGap для выбора видео из библиотеки - PullRequest
3 голосов
/ 12 сентября 2011

Мне нужно иметь возможность выбрать видео из библиотеки и загрузить его на свой сервер.

Я могу записать новое видео (captureVideo) и загрузить его (filetransfer) без проблем, но я не могу найти какой-либо способ открыть видеоархив и выбрать видео, а затем загрузить его.

Есть ли способ сделать это? Изменить MediaType как-то на navigator.camera.getPicture

Любая помощь приветствуется, спасибо заранее

Nilesh

Ответы [ 2 ]

0 голосов
/ 20 марта 2013

Самый простой способ предварительного просмотра элемента из библиотеки или недавнего захвата - это использовать нативный

html5 видео, изображение или аудио тег с URI, возвращаемым при успешном вызове getPicture,

capturePicture, captureVideo или captureAudio ... надеюсь, это поможет.

0 голосов
/ 24 февраля 2012

Мы решили эту проблему следующим образом:

function ideaCommitLibraryVideoAttach() {
if(PhoneGap.available) {
    var options = {quality: 80};
    options["sourceType"] = 0;
    options["correctOrientation"] = true;
    options["allowEdit"] = true;
    options["mediaType"] = 1;
    navigator.camera.getPicture(ideaCommitLibraryVideoReceive, ideaCommitVideoAttachFail, options);
}
}

function ideaCommitLibraryVideoReceive(data) {
if(PhoneGap.available) {
    var gotFS = function(fileSystem) {
        var fail = function() {notify("Can't open file!");};
        var gotFileEntry = function(fileEntry) {
            var fail = function() {notify("Can't write attachment in a temporary file!");};
            var gotFileWriter = function(fileWriter) {
                fileWriter.onwriteend = function(evt) {
                    ideaCommitVideoReceive([fileEntry]);
                };
                fileWriter.write(data);
            };
            fileEntry.createWriter(gotFileWriter, fail);
            file = fileEntry;
        };
        fileSystem.root.getFile("y"+ new Date().getTime()+".mp4", {create: true, exclusive: false}, gotFileEntry, fail);

    };
    var fail = function() {notify("Can't open file system!");};
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
}

Единственная оставшаяся проблема с этим заключается в следующем: мы не нашли способ получить доступ к видео в виде файла, а только в кодировке base64. Таким образом, мы не можем предоставить пользователю возможность предварительного просмотра после выбора видео из приложения. У кого-нибудь есть идеи, как это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...