【问题标题】:Oculus Go & Unity: Microphone Real-time PlaybackOculus Go & Unity:麦克风实时播放
【发布时间】:2020-03-16 00:07:27
【问题描述】:

我想通过扬声器实时播放来自 Oculus Go 麦克风的声音,但无法实现。我已经尝试过这段代码,它在带有耳机麦克风而不是 Oculus Go 的编辑器中运行良好,或者我犯了一些错误?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;

public class MicrophoneAudio : MonoBehaviour
{
    void Start()
    {
        AudioSource micAudio = GetComponent<AudioSource>();
        micAudio.clip = Microphone.Start(Microphone.devices[0], true, 10, 44100);
        micAudio.loop = true;
        while(!(Microphone.GetPosition(null) > 0)) { }
        micAudio.Play();
    }
}

或者这是设备限制?我已经观察了很多,但没有运气,发现只启动了没有实时播放的麦克风。希望有人能帮助我。:(

【问题讨论】:

    标签: unity3d audio virtual-reality oculusgo


    【解决方案1】:

    这个脚本应该可以在 Oculus GO 上运行,它在我的 Oculus GO 音频 + 视频直播演示中使用。

    AudioSource AudioMic;
    void Start() {
        StartCoroutine(CaptureMic());
    }
    
    IEnumerator CaptureMic()
    {
        if (AudioMic == null) AudioMic = GetComponent<AudioSource>();
        AudioMic.clip = Microphone.Start(null, true, 1, OutputSampleRate);
        AudioMic.loop = true;
        while (!(Microphone.GetPosition(null) > 0)) { }
        Debug.Log("Start Mic(pos): " + Microphone.GetPosition(null));
        AudioMic.Play();
    
        //capture for live streaming
        //while (!stop)
        //{
        //    AddMicData();
        //    yield return null;
        //}
        //capture for live streaming
        yield return null;
    }
    

    【讨论】:

    • 这行得通!太感谢了。但是还是有一点延迟,请问您有什么解决播放延迟的建议吗?
    • 我发现了一些技巧,但我没有测试过。编辑 -> 项目设置 -> 音频将 DSP 缓冲区大小设置为“最佳延迟”
    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2022-01-05
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多