Как я могу получить продолжительность звука mp3-файла в React

Я пытался использовать некоторые пакеты npm, но они, похоже, не работали, на самом деле я использую React-audio-player, хотя проигрыватель работает хорошо и отображает продолжительность, но я хочу получить продолжительность звука раньше воспроизведение и рендеринг в мой плейлист.

 <span className = "trackTDuration">8:23</span>   
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
2 951
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете получить доступ к аудиоэлементу через ref (см. Расширенное использование). Элемент Audio предоставляет продолжительность в качестве своего члена.

При использовании компонента из библиотеки вы можете передать onLoadedMetadata props функцию, из которой вы можете получить event. А с помощью event.target.duration получите нужную продолжительность.

Код будет выглядеть примерно так:

import React from "react";
import ReactAudioPlayer from 'react-audio-player';

export const Container = () => {
  const handleLoadMetadata = (meta) => {
    const {duration} = meta.target;
    console.info(duration);
  }

  return (
    <div className = "container">
      <ReactAudioPlayer
        src = "path_to_mp3.mp3"
        autoPlay
        controls
        onLoadedMetadata = {handleLoadMetadata}
      />
    </div>
  );
}

Но я могу получить только продолжительность текущей песни, которая воспроизводится.

Ogundipe Pelumi 12.12.2020 10:29

Проблема в том, что у меня есть куча аудиофайлов, которые я хочу прокрутить и получить их продолжительность в процессе.

Ogundipe Pelumi 12.12.2020 10:31

Другие вопросы по теме