Воспроизведение локального аудиофайла при выборе пользователя (локальный, без сервера) - HTML5 / Javascript? [Дубликат]

Было опубликовано много хороших ответов, но я хотел бы добавить еще один.

Не все числа могут быть представлены с помощью float / double. Например, будет представлено число «0,2» как «0.200000003» в одинарной точности в стандарте по плавающей точке IEEE754.

Модель для хранения действительных чисел под капотом представляет собой число с плавающей запятой в качестве

Хотя вы можете легко ввести 0.2, FLT_RADIX и DBL_RADIX равно 2; не 10 для компьютера с FPU, который использует «Стандарт IEEE для двоичной арифметики с плавающей запятой (ISO / IEEE Std 754-1985)».

. Точно так же трудно точно представлять такие числа. Даже если вы укажете эту переменную явно без какого-либо промежуточного вычисления.

15
задан Ronak59 16 March 2016 в 13:28
поделиться

2 ответа

Не забывайте, что он использует библиотеку jquery

Javascript

$ ("#video_p").change(function () {
   var fileInput = document.getElementById('video_p');
   var fileUrl = window.URL.createObjectURL(fileInput.files[0]);
   $(".video").attr("src", fileUrl);
});

Html

< video controls class="video" >
< /video >
4
ответ дан Fabian Quiroga 28 August 2018 в 22:40
поделиться

@FabianQuiroga прав, что вам лучше использовать createObjectURL, чем FileReader в этом случае, но ваша проблема имеет больше общего с тем фактом, что вы устанавливаете src из элемента <source>, поэтому вам нужно videoElement.load().

$(document).on("change", ".file_multi_video", function(evt) {
  var $source = $('#video_here');
  $source[0].src = URL.createObjectURL(this.files[0]);
  $source.parent()[0].load();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<video width="400" controls>
  <source src="mov_bbb.mp4" id="video_here">
    Your browser does not support HTML5 video.
</video>

<input type="file" name="file[]" class="file_multi_video" accept="video/*">

Ps: не забудьте вызвать URL.revokeObjectURL($source[0].src), когда он вам не нужен больше.

33
ответ дан Kaiido 28 August 2018 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: