how to get duration of multiple video while uploading?
up vote
1
down vote
favorite
<!DOCTYPE html>
<html>
<body onload="myFunction()">
<input type="file" id="myFile" multiple size="50" onchange="myFunction()">
<p id="demo"></p>
<script>
function myFunction(){
var x = document.getElementById("myFile");
var txt = "";
if ('files' in x) {
if (x.files.length == 0) {
txt = "Select one or more files.";
} else {
for (var i = 0; i < x.files.length; i++) {
txt += "<br><strong>" + (i+1) + ". file</strong><br>";
var file = x.files[i];
if ('name' in file) {
txt += "name: " + file.name + "<br>";
}
if ('size' in file) {
txt += "size: " + file.size + " bytes <br>";
}
}
}
}
else {
if (x.value == "") {
txt += "Select one or more files.";
} else {
txt += "The files property is not supported by your browser!";
txt += "<br>The path of the selected file: " + x.value; // If the browser does not support the files property, it will return the path of the selected file instead.
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>
<p><strong>Tip:</strong> Use the Control or the Shift key to select multiple files.</p>
</body>
</html>
In this, they are listing video file name and size. but how to list the duration of all the videos uploaded with the file name and file size.i can get single video duration while uploading. but having difficulty in finding when its multiple videos.
javascript video duration
add a comment |
up vote
1
down vote
favorite
<!DOCTYPE html>
<html>
<body onload="myFunction()">
<input type="file" id="myFile" multiple size="50" onchange="myFunction()">
<p id="demo"></p>
<script>
function myFunction(){
var x = document.getElementById("myFile");
var txt = "";
if ('files' in x) {
if (x.files.length == 0) {
txt = "Select one or more files.";
} else {
for (var i = 0; i < x.files.length; i++) {
txt += "<br><strong>" + (i+1) + ". file</strong><br>";
var file = x.files[i];
if ('name' in file) {
txt += "name: " + file.name + "<br>";
}
if ('size' in file) {
txt += "size: " + file.size + " bytes <br>";
}
}
}
}
else {
if (x.value == "") {
txt += "Select one or more files.";
} else {
txt += "The files property is not supported by your browser!";
txt += "<br>The path of the selected file: " + x.value; // If the browser does not support the files property, it will return the path of the selected file instead.
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>
<p><strong>Tip:</strong> Use the Control or the Shift key to select multiple files.</p>
</body>
</html>
In this, they are listing video file name and size. but how to list the duration of all the videos uploaded with the file name and file size.i can get single video duration while uploading. but having difficulty in finding when its multiple videos.
javascript video duration
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
<!DOCTYPE html>
<html>
<body onload="myFunction()">
<input type="file" id="myFile" multiple size="50" onchange="myFunction()">
<p id="demo"></p>
<script>
function myFunction(){
var x = document.getElementById("myFile");
var txt = "";
if ('files' in x) {
if (x.files.length == 0) {
txt = "Select one or more files.";
} else {
for (var i = 0; i < x.files.length; i++) {
txt += "<br><strong>" + (i+1) + ". file</strong><br>";
var file = x.files[i];
if ('name' in file) {
txt += "name: " + file.name + "<br>";
}
if ('size' in file) {
txt += "size: " + file.size + " bytes <br>";
}
}
}
}
else {
if (x.value == "") {
txt += "Select one or more files.";
} else {
txt += "The files property is not supported by your browser!";
txt += "<br>The path of the selected file: " + x.value; // If the browser does not support the files property, it will return the path of the selected file instead.
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>
<p><strong>Tip:</strong> Use the Control or the Shift key to select multiple files.</p>
</body>
</html>
In this, they are listing video file name and size. but how to list the duration of all the videos uploaded with the file name and file size.i can get single video duration while uploading. but having difficulty in finding when its multiple videos.
javascript video duration
<!DOCTYPE html>
<html>
<body onload="myFunction()">
<input type="file" id="myFile" multiple size="50" onchange="myFunction()">
<p id="demo"></p>
<script>
function myFunction(){
var x = document.getElementById("myFile");
var txt = "";
if ('files' in x) {
if (x.files.length == 0) {
txt = "Select one or more files.";
} else {
for (var i = 0; i < x.files.length; i++) {
txt += "<br><strong>" + (i+1) + ". file</strong><br>";
var file = x.files[i];
if ('name' in file) {
txt += "name: " + file.name + "<br>";
}
if ('size' in file) {
txt += "size: " + file.size + " bytes <br>";
}
}
}
}
else {
if (x.value == "") {
txt += "Select one or more files.";
} else {
txt += "The files property is not supported by your browser!";
txt += "<br>The path of the selected file: " + x.value; // If the browser does not support the files property, it will return the path of the selected file instead.
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>
<p><strong>Tip:</strong> Use the Control or the Shift key to select multiple files.</p>
</body>
</html>
In this, they are listing video file name and size. but how to list the duration of all the videos uploaded with the file name and file size.i can get single video duration while uploading. but having difficulty in finding when its multiple videos.
javascript video duration
javascript video duration
asked Nov 12 at 6:47
chennakeshav hegde
82
82
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
You need to "load" the file into a video node and wait for the meta data of the file to be loaded and extract the duration from the loaded node. Here is a function to get the duration from a file
. Note that this function returns a promise:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
You can then call this function like this:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Note! You need to reimplement your loop to wait for the promise to finish before you concatenate the txt
variable and output it.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257110%2fhow-to-get-duration-of-multiple-video-while-uploading%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
You need to "load" the file into a video node and wait for the meta data of the file to be loaded and extract the duration from the loaded node. Here is a function to get the duration from a file
. Note that this function returns a promise:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
You can then call this function like this:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Note! You need to reimplement your loop to wait for the promise to finish before you concatenate the txt
variable and output it.
add a comment |
up vote
0
down vote
accepted
You need to "load" the file into a video node and wait for the meta data of the file to be loaded and extract the duration from the loaded node. Here is a function to get the duration from a file
. Note that this function returns a promise:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
You can then call this function like this:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Note! You need to reimplement your loop to wait for the promise to finish before you concatenate the txt
variable and output it.
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
You need to "load" the file into a video node and wait for the meta data of the file to be loaded and extract the duration from the loaded node. Here is a function to get the duration from a file
. Note that this function returns a promise:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
You can then call this function like this:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Note! You need to reimplement your loop to wait for the promise to finish before you concatenate the txt
variable and output it.
You need to "load" the file into a video node and wait for the meta data of the file to be loaded and extract the duration from the loaded node. Here is a function to get the duration from a file
. Note that this function returns a promise:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
You can then call this function like this:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Note! You need to reimplement your loop to wait for the promise to finish before you concatenate the txt
variable and output it.
answered Nov 12 at 9:23
jonasdev
864
864
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257110%2fhow-to-get-duration-of-multiple-video-while-uploading%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown