Add support for sending uploaded content as m.video

This commit is contained in:
Will Hunt 2016-07-19 16:05:15 +01:00
parent 1ba0ef7369
commit 4bd2b93f59

View file

@ -52,6 +52,36 @@ function infoForImageFile(imageFile) {
return deferred.promise;
}
function infoForVideoFile(videoFile) {
var deferred = q.defer();
// Load the file into an html element
var video = document.createElement("video");
var reader = new FileReader();
reader.onload = function(e) {
video.src = e.target.result;
// Once ready, returns its size
video.onloadedmetadata = function() {
deferred.resolve({
w: video.videoWidth,
h: video.videoHeight
});
};
video.onerror = function(e) {
deferred.reject(e);
};
};
reader.onerror = function(e) {
deferred.reject(e);
};
reader.readAsDataURL(videoFile);
return deferred.promise;
}
class ContentMessages {
constructor() {
this.inprogress = [];
@ -81,6 +111,12 @@ class ContentMessages {
} else if (file.type.indexOf('audio/') == 0) {
content.msgtype = 'm.audio';
def.resolve();
} else if (file.type.indexOf('video/') == 0) {
content.msgtype = 'm.video';
infoForVideoFile(file).then(function (videoInfo) {
extend(content.info, videoInfo);
def.resolve();
});
} else {
content.msgtype = 'm.file';
def.resolve();