113 lines
4.1 KiB
C#
113 lines
4.1 KiB
C#
using Crosstales.RTVoice.Tool;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using UnityEngine;
|
||
using UnityEngine.Networking;
|
||
using ZXK.Framework;
|
||
using ZXK.ZPS;
|
||
/********************************************************************************
|
||
*Create By CG
|
||
*Function 文字转语音调用类
|
||
*********************************************************************************/
|
||
namespace ZXK.UTility
|
||
{
|
||
public class SpeakManager : MonoSingleton<SpeakManager>
|
||
{
|
||
private AudioSource _curAudSrc = null;
|
||
[SerializeField]
|
||
private List<AudioClip> _wqbAudioClips = new List<AudioClip>();
|
||
//private Dictionary<string, AudioClip> _wqbAudioClips = new Dictionary<string, AudioClip>();
|
||
|
||
[SerializeField]
|
||
private List<AudioClip> _dhbAudioClips = new List<AudioClip>();
|
||
//private Dictionary<string, AudioClip> _dhbAudioClips = new Dictionary<string, AudioClip>();
|
||
|
||
void Start()
|
||
{
|
||
_curAudSrc = transform.GetComponent<AudioSource>();
|
||
|
||
//_wqbAudioClips.Clear();
|
||
//string wqbfilePath = System.IO.Path.Combine(Application.streamingAssetsPath, ConstCtrl.AUDIO_WQB_PATH);
|
||
//string[] wqbfiles = Directory.GetFiles(wqbfilePath, "*.mp3"); // 假设我们只加载mp3格式的音频
|
||
//foreach (string file in wqbfiles)
|
||
//{
|
||
// StartCoroutine(ReadAudioDataWeb(file, WqbCallback));
|
||
//}
|
||
//_dhbAudioClips.Clear();
|
||
//string dhbfilePath = System.IO.Path.Combine(Application.streamingAssetsPath, ConstCtrl.AUDIO_DHB_PATH);
|
||
//string[] dhbfiles = Directory.GetFiles(dhbfilePath, "*.mp3"); // 假设我们只加载mp3格式的音频
|
||
//foreach (string file in dhbfiles)
|
||
//{
|
||
// StartCoroutine(ReadAudioDataWeb(file, DhbCallback));
|
||
//}
|
||
}
|
||
//private void WqbCallback(UnityEngine.Object wqbClip)
|
||
//{
|
||
// _wqbAudioClips.Add(wqbClip.name,(AudioClip)wqbClip);
|
||
//}
|
||
//private void DhbCallback(UnityEngine.Object wqbClip)
|
||
//{
|
||
// _dhbAudioClips.Add(wqbClip.name,(AudioClip)wqbClip);
|
||
//}
|
||
|
||
/// <summary>
|
||
/// 播放语音
|
||
/// </summary>
|
||
/// <param name="secondProcessName">第二工序名字对应语音名字</param>
|
||
/// <param name="index">1代表是提示语音,2代表说明语音</param>
|
||
public void StartSpeak(string secondProcessName, int index)
|
||
{
|
||
AudioClip clip = null;
|
||
if (GameRoot.Instance._CurType == EnumCtrl.Type.WQB)
|
||
{
|
||
string wqbfile = secondProcessName + index;
|
||
for (int i = 0; i < _wqbAudioClips.Count; i++)
|
||
{
|
||
if (_wqbAudioClips[i].name.Equals(wqbfile))
|
||
{
|
||
clip = _wqbAudioClips[i];
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
string dhbfile = secondProcessName + index;
|
||
for (int i = 0; i < _dhbAudioClips.Count; i++)
|
||
{
|
||
if (_dhbAudioClips[i].name.Equals(dhbfile))
|
||
{
|
||
clip = _dhbAudioClips[i];
|
||
}
|
||
}
|
||
}
|
||
_curAudSrc.clip = clip;
|
||
_curAudSrc.Play();
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 关闭语音
|
||
/// </summary>
|
||
public void StopSpaek()
|
||
{
|
||
_curAudSrc.Stop();
|
||
}
|
||
|
||
|
||
//private IEnumerator ReadAudioDataWeb(string filePath)
|
||
//{
|
||
// using (UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip(filePath, AudioType.MPEG))
|
||
// {
|
||
// yield return request.SendWebRequest();
|
||
// AudioClip clip = DownloadHandlerAudioClip.GetContent(request);
|
||
// clip.name = Path.GetFileNameWithoutExtension(filePath);
|
||
// _curAudSrc.clip = clip;
|
||
// _curAudSrc.Play();
|
||
// }
|
||
// yield return null;
|
||
//}
|
||
}
|
||
}
|