Open1

Reactで生成された audio ファイルを自動再生する方法

まさぴょん🐱まさぴょん🐱

Reactで生成された audio ファイルを自動再生する方法

Reactで生成されたオーディオファイルを自動再生するには、オーディオコンポーネントを作成して、ファイルが生成された後に自動的に再生されるようにすることができます。
オーディオファイルの生成後にそのURLを設定し、再生をトリガーします。

import React, { useEffect, useRef, useState } from 'react';

const AutoPlayAudio = ({ audioUrl }) => {
  const audioRef = useRef(null);

  useEffect(() => {
    if (audioUrl && audioRef.current) {
      audioRef.current.play();
    }
  }, [audioUrl]);

  return (
    <audio ref={audioRef} controls>
      <source src={audioUrl} type="audio/mpeg" />
      Your browser does not support the audio element.
    </audio>
  );
};

const App = () => {
  const [audioUrl, setAudioUrl] = useState('');

  // 仮の例として、オーディオURLを生成
  useEffect(() => {
    const generateAudio = async () => {
      // オーディオファイルを生成し、URLを取得するロジックをここに記述
      // 例として、一時的なURLを設定
      const newAudioUrl = 'path/to/generated/audio/file.mp3';
      setAudioUrl(newAudioUrl);
    };

    generateAudio();
  }, []);

  return (
    <div>
      <h1>Auto Play Audio Example</h1>
      {audioUrl && <AutoPlayAudio audioUrl={audioUrl} />}
    </div>
  );
};

export default App;

AutoPlayAudio コンポーネント

  1. audioUrl をプロップとして受け取ります。
  2. useRef を使ってオーディオ要素への参照を保持します。
  3. useEffect フックを使って audioUrl が変更されたときにオーディオを再生します。

App コンポーネント

  1. audioUrl ステートを管理します。
  2. コンポーネントのマウント時にオーディオファイルを生成し、URLを取得する非同期関数 generateAudio を呼び出します。
  3. audioUrl が設定されたときに AutoPlayAudio コンポーネントをレンダリングします。