收藏
回答

小程序开发者工具录音ios真机无法播放?

配置: const options = {
          duration: 60 * 1000,
          sampleRate: 16000, // 采样率
          numberOfChannels: 1, // 录音通道数
          encodeBitRate: 96000, // 编码码率
          format: 'mp3', // 音频格式,有效值 aac/mp3
          frameSize: 10, // 指定帧大小,单位 KB
        };


开发者工具录的mp3, 就ios真机无法播放, 安卓机可以.

如果手机录音, 不管是ios还是安卓真机录音, ios都能正常播放.

  1. 所以我在想是不是options的问题, 还是什么问题? 音频录制好是上传cos后读取回来的https://xxx.mp3格式的, 如当前开发者工具的录音: [https://material-qa.chinaerdos.com/persist/3e89d264-b317-4241-a9df-4292c90871a7/6666/6642867006/blessing/3/46962c4bfbed461785297fa41fbc4429-1770087659775/blessing-audio-1770087659468.mp3], 这个录音电脑和安卓机都能播放,但是ios的小程序不行


以下是初始化代码

  const [isListening, setIsListening] = useState(false);
  const audioContextRef = useRef<Taro.InnerAudioContext | null>(null);
  const timerRef = useRef<NodeJS.Timeout | null>(null);


  // 初始化音频上下文
  useEffect(() => {
    const audioContext = Taro.createInnerAudioContext();
    audioContextRef.current = audioContext;


    Taro.setInnerAudioOption({
      obeyMuteSwitch: false,


      success: function (res: any) {
        console.log('开启静音模式下播放音乐的功能', res);
      },


      fail: function (err: any) {
        console.log('静音设置失败', err);
      },
    });


    // 设置事件监听
    audioContext.onStop(() => {
      console.log('停止播放');
      setIsListening(false);
      onStop?.();
    });


    audioContext.onPlay(() => {
      console.log('开始播放');
      onPlay?.();
    });


    audioContext.onPause(() => {
      console.log('暂停播放');
      onPause?.();
    });


    audioContext.onEnded(() => {
      console.log('播放结束');
      setIsListening(false);
      onEnded?.();
    });


    audioContext.onError((err) => {
      console.log('播放错误', err);
      setIsListening(false);
      onError?.(err);
    });


    // 清理函数
    return () => {
      // 清除定时器
      if (timerRef.current) {
        clearInterval(timerRef.current);
        timerRef.current = null;
      }
      // 停止播放
      if (audioContext) {
        audioContext.stop();
        audioContext.destroy();
      }
    };
  }, []);


最后一次编辑于  12小时前
回答关注问题邀请回答
收藏

1 个回答

  • showms
    showms
    12小时前

    播放代码呢

    12小时前
    有用
    回复 1
    • CC
      CC
      12小时前
      和播放代码应该无关,  真机录音ios是能正常播放的
      12小时前
      回复
登录 后发表内容