Я не могу выбрать видео из библиотеки пользователей и загрузить его. Тем не менее, я могу выбирать фотографии, делать фотографии / видео, а также загружать видео с помощью функции просмотра и загрузки / загрузки (загружено из Safari)
Это отлично работает на симуляторе iOS и моем iPhone 5, но немой iPhone 7 или 11.
selectMediaType(type){
alert(cordova.file.applicationStorageDirectory)
try{
if(type == 0){ //image
navigator.camera.getPicture(
data => {
// on success
var img = `data:image/jpeg;base64,${data}`;
this.imageSrc.push(img);
},
() => {
// on fail
this.$q.notify("Could not access device camera.");
},
{
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
destinationType: navigator.camera.DestinationType.DATA_URL,
quality: 100,
targetWidth: 1000,
targetHeight: 1000,
encodingType: navigator.camera.EncodingType.JPEG,
correctOrientation: true
}
);
}else if(type == 1 ){ //video
navigator.camera.getPicture(
async data => {
// on success
// var img = `data:image/jpeg;base64,${data}`;
// this.imageSrc.push(img);
if(this.$q.platform.is.ios){
this.getBase64StringByFilePath( data)
}else{
this.getBase64StringByFilePath('file://'+ data) //android
}
},
() => {
// on fail
this.$q.notify("Could not access device camera.");
},
{
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
destinationType: navigator.camera.DestinationType.FILE_URI,
// quality: 100,
// targetWidth: 1000,
// targetHeight: 1000,
// encodingType: this.camera.EncodingType.JPEG,
mediaType: navigator.camera.MediaType.VIDEO,
correctOrientation: true
}
);
}
}catch(err){
alert(2222)
}
},
getBase64StringByFilePath(fileURL) {
alert(fileURL)
var that = this;
try{
window.resolveLocalFileSystemURL(fileURL, function(fileEntry) {
return fileEntry.file(function(data) {
alert(data)
var reader = new FileReader();
reader.onload = function(e) {
alert(e.target.result)
var v = "<video style='height:240px;' controls>";
v +=
"<source src='" + e.target.result + "' type='video/mp4'>";
v += "</video>";
document.querySelector("#videoArea").innerHTML = v;
that.loadingMedia = false
};
reader.onerror = error=>{
that.loadingMedia = false
}
that.loadingMedia = true
return reader.readAsDataURL(data);
});
});
}catch(err)
alet(err)
}
},
Когда я выбираю видео и оповещаю о пути, кажется, что он отображает правильный путь. В моем приложении есть место предварительного просмотра, которое должно отображать видео, но оно никогда не появляется, если я не использую симулятор iPhone 5 или iOS