Ejemplo n.º 1
0
 /// <summary>
 /// NIM SDK 卸载语音模块(只有在主程序关闭时才有必要调用此接口)
 /// </summary>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool UninitModule()
 {
     _initialized         = false;
     _onAudioStartPlaying = null;
     _onAudioStopped      = null;
     return(AudioNativeMethods.nim_audio_uninit_module());
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 录制语音
        /// </summary>
        /// <param name="callID">用以定位资源的一级ID,可选</param>
        /// <param name="resID">用以定位资源的二级ID,可选</param>
        /// <param name="format">音频格式,AAC : 0, AMR : 1</param>
        /// <param name="volume">音量(0 - 255, 默认180) pc有效</param>
        /// <param name="loudness">默认0,低频增益开关,pc有效</param>
        /// <param name="device">录音设备</param>
        /// <returns></returns>
        public static bool StartCapture(string callID, string resID, NIMAudioType format = 0, int volume = 180, string device = null)
        {
#if NIM_WIN_DESKTOP_ONLY_SDK
            return(AudioNativeMethods.nim_audio_start_capture(callID, resID, (int)format, volume, device));
#else
            return(AudioNativeMethods.nim_audio_start_capture(callID, resID, (int)format, volume, 0, device));
#endif
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取播放文件的时长
        /// </summary>
        /// <returns>播放文件的时长,异常为-1</returns>
        public static int GetPlayTime()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(-1);
#else
            return(AudioNativeMethods.nim_audio_get_play_time());
#endif
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取播放时间,播放时间由所注册的回调返回
        /// </summary>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool GetPlayCurrentPosition()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            return(AudioNativeMethods.nim_audio_get_play_current_position());
#endif
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取采集时间,采集时间由所注册的回调返回
        /// </summary>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool GetCaptureTime()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            return(AudioNativeMethods.nim_audio_get_capture_time());
#endif
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取扬声器状态 ios,android有效
        /// </summary>
        /// <param name="context">当前上下文,android 必须.ios无效</param>
        /// <returns><c>true</c> 扬声器开启 <c>false</c> 扬声器关闭</returns>
        public static bool GetPlaySpeaker(IntPtr context)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            return(AudioNativeMethods.nim_audio_get_play_speaker(context));
#endif
        }
Ejemplo n.º 7
0
        /// <summary>
        /// NIM SDK 初始化语音模块
        /// </summary>
        /// <param name="userDataParentPath">缓存目录</param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool InitModule(string userDataParentPath)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            return(_initialized = AudioNativeMethods.nim_audio_init_module(userDataParentPath));
#endif
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 枚举采集设备,结果由所注册回调返回。
        /// </summary>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool GetCaptureDevices()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            return(AudioNativeMethods.nim_audio_enum_capture_device());
#endif
        }
Ejemplo n.º 9
0
 /// <summary>
 /// NIM SDK 播放,通过回调获取开始播放状态
 /// </summary>
 /// <param name="filePath">播放文件绝对路径</param>
 /// <param name="callerId"></param>
 /// <param name="resId">用以定位资源的二级ID,可选</param>
 /// <param name="audioFormat"></param>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool PlayAudio(string filePath, string callerId, string resId, NIMAudioType audioFormat)
 {
     if (!_initialized)
     {
         throw new Exception("nim audio moudle uninitialized!");
     }
     return(AudioNativeMethods.nim_audio_play_audio(filePath, callerId, resId, (int)audioFormat));
 }
Ejemplo n.º 10
0
        /// <summary>
        ///  设置扬声器 ios,android有效
        /// </summary>
        /// <param name="speaker">true:扬声器开启.false:扬声器关闭</param>
        /// <param name="context">当前上下文,android 必须.ios无效</param>
        public static void SetPlaySpeaker(bool speaker, IntPtr context)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return;
#else
            AudioNativeMethods.nim_audio_set_play_speaker(speaker, context);
#endif
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 设置音量值回调
        /// </summary>
        /// <param name="cb">回调函数</param>
        /// <returns></returns>
        public static bool RegCaptureVolumeCb(CaptureVolumeCallbackDelegate cb)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(AudioNativeMethods.nim_audio_reg_capture_volume_cb(OnCaptureVolume, ptr));
#endif
        }
Ejemplo n.º 12
0
        /// <summary>
        /// NIM SDK 卸载语音模块(只有在主程序关闭时才有必要调用此接口)
        /// </summary>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool UninitModule()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            _initialized = false;
            return(AudioNativeMethods.nim_audio_uninit_module());
#endif
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 取消录制并删除临时文件
        /// </summary>
        /// <param name="filepath"></param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool CancelCapture()
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            return(AudioNativeMethods.nim_audio_cancel_audio());
#endif
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 录制语音 android平台需在主线程调用
        /// </summary>
        /// <param name="audio_format">音频格式,AAC : 0, AMR : 1</param>
        /// <param name="volume">音量(0 - 500, 默认100)增益值为(volume/100),值为0时,sdk底层已默认值处理</param>
        /// <param name="loudness">默认0   pc有效</param>
        /// <param name="capture_device">capture_device 录音设备 pc有效</param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool StartCapture(int audio_format, int volume, int loudness, string capture_device)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            return(AudioNativeMethods.nim_audio_start_capture(audio_format, volume, loudness, capture_device));
#endif
        }
Ejemplo n.º 15
0
        /// <summary>
        /// NIM SDK 停止播放,通过回调获取停止播放状态
        /// </summary>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool StopPlayAudio()
        {
#if  UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            return(AudioNativeMethods.nim_audio_stop_play_audio());
#endif
        }
Ejemplo n.º 16
0
        /// <summary>
        /// NIM SDK 注册播放结束事件回调
        /// </summary>
        /// <param name="cb">播放结束事件的回调函数</param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool RegPlayEndCb(PlayCallbackDelegate cb)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(AudioNativeMethods.nim_audio_reg_play_end_cb(OnPlayEndCallback, ptr));
#endif
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 注册获取当前录制时间的回调
        /// </summary>
        /// <param name="cb"></param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool RegGetCaptureTimeCb(StatusCallbackDelegate cb)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(AudioNativeMethods.nim_audio_reg_get_capture_time_cb(OnGetCaptureTimeCallback, ptr));
#endif
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 注册获取当前播放时间的回调
        /// </summary>
        /// <param name="cb"></param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool RegGetPlayCurrentPositionCb(StatusCallbackDelegate cb)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            if (!_initialized)
            {
                return(false);
            }
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            return(AudioNativeMethods.nim_audio_reg_get_play_current_position_cb(OnCancelCaptureCallback, ptr));
#endif
        }
Ejemplo n.º 19
0
        /// <summary>
        /// NIM SDK 播放,通过回调获取开始播放状态。android平台需在主线程调用
        /// </summary>
        /// <param name="filePath">播放文件绝对路径</param>
        /// <param name="audioFormat">播放音频格式,AAC : 0, AMR : 1</param>
        /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
        public static bool PlayAudio(string filePath, NIMAudioType audioFormat)
        {
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
            return(false);
#else
            NimUtility.Log.Info("nim_audio api _initialized->" + _initialized.ToString());
            if (!_initialized)
            {
                return(false);
            }
            return(AudioNativeMethods.nim_audio_play_audio(filePath, (int)audioFormat));
#endif
            //             if (!_initialized)
            //                 throw new Exception("nim audio moudle uninitialized!");
        }
Ejemplo n.º 20
0
 /// <summary>
 /// NIM SDK 注册播放开始事件回调
 /// </summary>
 /// <param name="cb">播放开始事件的回调函数</param>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool RegStartPlayCb(NIMAudio.ResCodeIdCb cb)
 {
     _onAudioStartPlaying = cb;
     return(AudioNativeMethods.nim_audio_reg_start_play_cb(_onAudioStartPlaying));
 }
Ejemplo n.º 21
0
 /// <summary>
 /// 枚举本地录音采集设备
 /// </summary>
 /// <returns></returns>
 public static bool EnumCaptureDevices()
 {
     return(AudioNativeMethods.nim_audio_enum_capture_device());
 }
Ejemplo n.º 22
0
 /// <summary>
 /// 停止录制语音
 /// </summary>
 /// <returns></returns>
 public static bool StopCapture()
 {
     return(AudioNativeMethods.nim_audio_stop_capture());
 }
Ejemplo n.º 23
0
 /// <summary>
 /// 注册枚举本地录音采集设备回调
 /// </summary>
 /// <param name="cb"></param>
 /// <returns></returns>
 public static bool RegEnumDevicesCb(NIMAudio.NIMEnumCaptureDevicesCb cb)
 {
     _onEnumCaptureDevices = cb;
     return(AudioNativeMethods.nim_audio_reg_enum_capture_device_cb(_onEnumCaptureDevices));
 }
Ejemplo n.º 24
0
 /// <summary>
 /// NIM SDK 初始化语音模块
 /// </summary>
 /// <param name="userDataParentPath">用户目录</param>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool InitModule(string userDataParentPath)
 {
     return(_initialized = AudioNativeMethods.nim_audio_init_module(userDataParentPath));
 }
Ejemplo n.º 25
0
 /// <summary>
 /// NIM SDK 卸载语音模块(只有在主程序关闭时才有必要调用此接口)
 /// </summary>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool UninitModule()
 {
     _initialized = false;
     return(AudioNativeMethods.nim_audio_uninit_module());
 }
Ejemplo n.º 26
0
 /// <summary>
 /// 注册取消录制并删除临时文件事件回调
 /// </summary>
 /// <param name="cb"></param>
 /// <returns></returns>
 public static bool RegCancelAudioCapturingCb(NIMAudio.NIMResCodeCb cb)
 {
     _onCancelAudioCapturing = cb;
     return(AudioNativeMethods.nim_audio_reg_cancel_audio_cb(_onCancelAudioCapturing));
 }
Ejemplo n.º 27
0
 /// <summary>
 /// NIM SDK 停止播放,通过回调获取停止播放状态
 /// </summary>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool StopPlayAudio()
 {
     return(AudioNativeMethods.nim_audio_stop_play_audio());
 }
Ejemplo n.º 28
0
 /// <summary>
 /// 取消录制并删除临时文件
 /// </summary>
 /// <param name="audioPath"></param>
 /// <returns></returns>
 public static bool CancelCapture(string audioPath)
 {
     return(AudioNativeMethods.nim_audio_cancel_audio(audioPath));
 }
Ejemplo n.º 29
0
 /// <summary>
 /// NIM SDK 注册播放结束事件回调
 /// </summary>
 /// <param name="cb">播放结束事件的回调函数</param>
 /// <returns><c>true</c> 调用成功, <c>false</c> 调用失败</returns>
 public static bool RegStopPlayCb(NIMAudio.ResCodeIdCb cb)
 {
     _onAudioStopped = cb;
     return(AudioNativeMethods.nim_audio_reg_stop_play_cb(_onAudioStopped));
 }
Ejemplo n.º 30
0
 /// <summary>
 /// 注册录制语音结束回调
 /// </summary>
 /// <param name="cb"></param>
 /// <returns></returns>
 public static bool RegStopAudioCaptureCb(NIMAudio.NIMStopCaptureCb cb)
 {
     _onAudioStopCapturing = cb;
     return(AudioNativeMethods.nim_audio_reg_stop_capture_cb(_onAudioStopCapturing));
 }