Unity調取移動端的麥克風進行錄音並播放

這篇文章主要爲大家詳細介紹了Unity調取移動端的麥克風進行錄音並播放,具有一定的參考價值,感興趣的小夥伴們可以參考一下

本文實例爲大家分享了Unity調取移動端的麥克風進行錄音並播放的具體代碼,供大家參考,具體內容如下

1.對MicroPhone類的理解

對麥克風的調用在Unity裏主要是用到了MicroPhone這個類,此類裏面有幾個方法可以方便我們實現功能

2.代碼演示

#region 模塊信息
// **********************************************************************
// Copyright (C) 2018 Blazors
// Please contact me if you have any questions
// File Name:    VoiceChat
// Author:    romantic123fly
// WeChat||QQ:   at853394528 || 853394528 
// **********************************************************************
#endregion
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
 
 
//此腳本須掛在錄音按鈕上
public class Record : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
 float tirecordingTimemer = 0;//錄音時長限制
 public AudioSource aud;//存儲聲音
 public Text ShowTimeHint;//剩餘時間的文字提示
 public void OnPointerDown(PointerEventData eventData)
 {
  Debug.Log("Start");
  StartCoroutine("KeepTime");
  aud.clip = Microphone.Start("Built-in Microphone", false, 60, 44100);
 }
 public void OnPointerUp(PointerEventData eventData)
 {
  Microphone.End("Built-in Microphone");
  StopCoroutine("KeepTime");
  Debug.Log("Over");
  aud.Play();
 }
 //此處開攜程也行,用while也可以,放在updata裏也沒問題
 IEnumerator KeepTime()
 {
  for (tirecordingTimemer = 10; tirecordingTimemer >= 0; tirecordingTimemer -= Time.deltaTime)
  {
   if (tirecordingTimemer <= 10)
   {
    ShowTimeHint.text = "你還可以錄 " + (int)tirecordingTimemer + " 秒";
    if (tirecordingTimemer < 1)
    {
     ShowTimeHint.text = "時間到";
     Microphone.End("Built-in Microphone");
    }
   }
   yield return 0;
  }
 }
}

對應的ui組件掛靠一下直接運行工程就好了

3.運行結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章