2016-07-06 3 views
0

Я не могу получить cordovaCapture.captureVideo для работы. Использование cordovaCamera позволяет мне использовать камеру для съемки фотографий и выбора фотографий из библиотеки без каких-либо проблем, но я пытаюсь использовать cordovaCapture для использования видео на iOS, я также хотел бы получить миниатюру или предварительный просмотр изображения для видео показывается, как только видео будет снято.Невозможно получить cordovaCapture для работы с использованием ngCordova на ионном

Я включил приведенный ниже код, который использует как cordovaCamera, так и cordovaCapture. Я следил за примерами на веб-сайте ngCordova.

.controller("CameraController", function($scope, $cordovaCamera, $cordovaCapture) { 
    $scope.takePhoto = function() { 
    var options = { 
     quality: 75, 
     cameraDirection: Camera.Direction.FRONT, 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     allowEdit: true, 
     encodingType: Camera.EncodingType.JPEG, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: false 
    }; 

    $cordovaCamera.getPicture(options).then(function (imageData) { 
     $scope.imgURI = "data:image/jpeg;base64," + imageData; 
    }, function (err) { 
     // An error occured. Show a message to the user 
    }); 
    } 

    $scope.choosePhoto = function() { 
    var options = { 
     quality: 75, 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
     allowEdit: true, 
     encodingType: Camera.EncodingType.JPEG, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: false 
    }; 

    $cordovaCamera.getPicture(options).then(function (imageData) { 
     $scope.imgURI = "data:image/jpeg;base64," + imageData; 
    }, function (err) { 
     // An error occured. Show a message to the user 
    }); 
    } 

    $scope.captureVideo = function() { 
    var options = { limit: 1, duration: 15 }; 

    $cordovaCapture.captureVideo(options).then(function(videoData) { 
     // Video data 
    }, function(err) { 
     // An error occurred. Show a message to the user 
    }); 
    } 
}) 
+0

Как насчет Android, вы пытались взять видео 'ng-click =" captureVideo() "на Android? –

+0

@TomislavStankovic тоже пробовали на Android, похоже, не работают. Однако камера работает. Есть идеи? – hilarl

+0

Вам удалось решить проблему? Если вам нужна дальнейшая помощь, я здесь. –

ответ

2

Я вижу, что вы используете $cordovaCamera и $cordovaCapture внутри контроллера.

Это означает, что вам необходимо установить оба

$ cordova plugin add cordova-plugin-camera из $cordovaCamera

и

$ cordova plugin add cordova-plugin-media-capture из $cordovaCapture


Если takePhoto() работает, но captureVideo() не происходит, это означает, что вы не установил $cordovaCapture.

+0

Он уже установлен. Я получил сообщение «Plugin» cordova-plugin-media-capture «уже установлен на ios», когда я попробовал команду – hilarl

+0

Попробуйте ввести внутри контроллера только код из '$ cordovaCapture' и посмотреть, будет ли он работать (captureAudio, captureImage, captureVideo) , Возможно, вам придется удалить и переустановить плагин. –

Смежные вопросы