2016-04-27 1 views
0

J'essaye de construire un lecteur vidéo local dans nwjs (node-webkit). J'ai été capable de lire les fichiers locaux en ajoutant leur chemin en tant qu'attribut src de l'élément vidéo, mais maintenant je veux utiliser MediaSource et, probablement nécessaire, URL.createObjectUrl().Utiliser les fichiers locaux avec MediaSource

Le problème est que je n'ai trouvé aucune documentation me permettant de réaliser cela, lors de mes tests je ne peux pas ajouter une nouvelle source à MediaSource comme fichier local. J'ai essayé des chemins directs et des requêtes XHR, le plus proche que j'ai été était avec la demande XHR du fichier mais je ne peux pas convertir le xhr.response en un article utilisable pour mon but, tel qu'un objecturl. Pour une raison quelconque, le changement direct de l'attribut src chaque fois qu'une nouvelle vidéo est sélectionnée entraîne une augmentation constante de l'utilisation de la mémoire, ce pourquoi je voudrais essayer de le faire via l'API de MediaSource.

Puisqu'il y a un manque d'une telle information j'apprécierais que n'importe qui pourrait aider.

+0

Certains navigateurs, par mesure de sécurité, bloquent l'accès aux fichiers locaux ou se comportent très différemment. –

+0

@JeremyJStarcher Ce n'est pas dans un navigateur en soi, c'est dans node-webkit qui a beaucoup de liberté puisqu'il utilise des modules node.js. Il n'y a pas de problèmes avec l'accès aux fichiers locaux, j'ai même dit que je pouvais récupérer les fichiers avec succès. – Shadow

Répondre

0

J'ai été en mesure de découvrir comment cela pouvait être fait, d'abord il doit y avoir un objet mediasource avec lequel vous utilisez URL.createObjectUrl pour lier à video.src, et ensuite vous créez un tampon dessus. C'est à ce tampon que sont ajoutés les médias chargés via XMLHttpRequest avec l'ensemble Content-type en tant que buffer de tableau. Attention avec les gros fichiers, si vous ne les segmentez pas et ne chargez pas tout en même temps, il va manger votre RAM et même planter votre application.