101 votes

Jouer en local (disque dur) fichier vidéo avec la balise vidéo HTML5?

Je veux atteindre le suivant.

<video src="file:///Users/username/folder/video.webm">
</video>

Le but est que l'utilisateur sera en mesure de sélectionner un fichier sur son disque dur.

Et la raison pour ne pas le téléchargement est bien sûr les frais de transport et de stockage de quota. Il n'y aura aucune raison pour enregistrer le fichier.

Est-il possible?

267voto

Dimitar Bonev Points 989

Il est possible de lire un fichier vidéo local.

<input type="file" accept="video/*"/>
<video controls autoplay></video>

Lorsqu'un fichier est sélectionné par le biais de l' input élément:

  1. le "changement" de l'événement est déclenché
  2. Obtenir le premier Fichier de l'objet de l' input.files FileList
  3. Faire un objet d'URL qui pointe vers le Fichier objet
  4. Définir l'objet de l'URL de l' video.src de la propriété
  5. Penchez-vous en arrière et de regarder :)

http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/présentation/

15voto

Holger Just Points 17345

Qui ne sera possible que si le fichier HTML est également chargé avec l' file protocole de la locale de l'utilisateur du disque dur.

Si la page HTML est servi par HTTP à partir d'un serveur, vous ne pouvez pas accéder à tous les fichiers locaux en les indiquant en src d'attribut avec l' file:// protocole qui signifierait que vous pouvez accéder à tous les fichiers sur l'ordinateur des utilisateurs insu de l'utilisateur, ce qui serait un énorme risque de sécurité.

Comme Dimitar Bonev dit, vous pouvez accéder à un fichier si l'utilisateur sélectionne à l'aide d'un sélecteur de fichier sur leur propre. Sans cette étape, il est interdit par tous les navigateurs, pour de bonnes raisons. Ainsi, alors que sa réponse pourrait s'avérer utile pour beaucoup de gens, il dégage l'exigence du code dans la question d'origine.

6voto

jcoshea Points 19

Couru à ce problème tout à l'heure. Site web ne pouvais pas accéder à un fichier vidéo sur le PC local en raison des paramètres de sécurité (compréhensible vraiment) SEULE façon que je pouvais obtenir autour de celle-ci pour exécuter un serveur web sur le PC local (server2Go) et toutes les références au fichier vidéo à partir du web ont été à l'localhost/vidéo.mp4

<div id="videoDiv">
     <video id="video" src="http://127.0.0.1:4001/videos/<?php $videoFileName?>" width="70%" controls>
    </div>
<!--End videoDiv-->

Pas une solution idéale, mais il a travaillé pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X