React 中适用于 IOS 的文本转语音 API

问题描述 投票:0回答:1

有谁知道如何使文本到音频 API 也适用于 IOS。 它在 Android 和 Windows 上运行良好,但不适用于 IOS/Mac。

 const playAudio = async () => {
    if (props.currentA !== props.key) {
      props.setCurrentA(props.key);
      setLoading(true);
      const audio = await convertTextToVoice(props.text);
      let audioSrc;
        audioSrc = `data:audio/mp3;base64,${audio}`;
      
        setAudio(audioSrc);
        setLoading(false);
        setPlaying(true);
       }
  };

有什么方法可以检查设备类型并使用 IOS 的 mp3 替代品

javascript reactjs html5-audio
1个回答
0
投票

我面对这个问题已经有一段时间了,解决方案非常简单。 Mp3 api 不适用于 IOS。所以我们必须使用wave。 但为此我们必须首先检查设备类型,然后相应地使用 API,所以这就是我所做的:

 const playAudio = async () => {
if (props.currentA !== props.key) {
  props.setCurrentA(props.key);
  setLoading(true);
  const audio = await convertTextToVoice(props.text);
  let audioSrc;
  const userAgent = navigator.userAgent;
  if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
    // Convert audio to WAV format for iOS
    const wavAudio = convertToWav(audio);
    audioSrc = `data:audio/wav;base64,${wavAudio}`;
  } else {
    // Use MP3 format for Android and other platforms
    audioSrc = `data:audio/mp3;base64,${audio}`;
  }
  
    setAudio(audioSrc);
    setLoading(false);
    setPlaying(true);
   }

};

© www.soinside.com 2019 - 2024. All rights reserved.