You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo Go/Android模拟器中使用expo-audio播放声音仅能触发一次的问题求助

Expo Go/Android模拟器中使用expo-audio播放声音仅能触发一次的问题求助

大家好,我刚接触React Native,现在用Expo SDK 50+里的expo-audio库在APP里播放音效。在Web预览里播放完全正常,但在Expo Go或者安卓模拟器上,声音只能播放一次——后续按按钮都触发不了声音了。有没有人遇到过这个问题,或者找到过能在移动设备上可靠重播声音的解决办法?

以下是我的代码:

import { useAudioPlayer } from 'expo-audio';
import React, { useState } from 'react';
import { Alert, Button, Image, Modal, StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';

const home = () => {
  const [userNameModalVisibility, setUserNameModalVisibility] = useState(false);
  const [settingModal, setSettingModal] = useState(false);
  const [music, setMusic] = useState(true);
  const [audio, setAudio] = useState(true);
  const [userName, setUserName] = useState('NONE');

  const musicSource = require('../assets/sounds/homebackground.wav');
  const musicPlayer = useAudioPlayer(musicSource);

  const settingAudio = require('../assets/sounds/settingbutton.wav');
  const settingAudioPlayer = useAudioPlayer(settingAudio);

  const ouchAudio = require("../assets/sounds/ouch.wav");
  const ouchAudioPlayer = useAudioPlayer(ouchAudio);

  const dooropenAudio = require("../assets/sounds/dooropening.wav");
  const dooropenPlayer = useAudioPlayer(dooropenAudio);

  const musicSetting = () => {
    setMusic(!music);
    music ? musicPlayer.pause() : musicPlayer.play();
  }

  const audioPlayer = (currentAudio: string) => {
    if (currentAudio !== '' && audio) {
      switch(currentAudio) {
        case 'ouch':
          ouchAudioPlayer.play();
          break;
        case 'dooropen':
          dooropenPlayer.play();
          break;
        case 'settingButton':
          settingAudioPlayer.play();
          break;
      }
    }
  }

  return (
    <SafeAreaProvider>
      <SafeAreaView>
        {/* simplified view content */}
        <TouchableOpacity onPress={() => audioPlayer('ouch')}>
          <Text>Play Ouch Sound</Text>
        </TouchableOpacity>
      </SafeAreaView>
    </SafeAreaProvider>
  );
}

export default home;

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:14:34