开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:501

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 147|回复: 0

[脚本] IOS录音扬声器被屏蔽

[复制链接]  [移动端链接]
4四处流浪
462/500
排名
5027
昨日变化
3

12

主题

54

帖子

462

积分

Rank: 4

UID
215906
好友
0
蛮牛币
244
威望
0
注册时间
2017-4-1
在线时间
164 小时
最后登录
2018-1-19
发表于 2018-1-18 17:42:43 | 显示全部楼层 |阅读模式
20蛮牛币
IOS在调用录音后audioSource的播放被切换至听筒,停止录音后正常
[AppleScript] 纯文本查看 复制代码
 #region 音量测试
        AudioSource CurAudioSource;
        public int DeviceLength;
        public string Frequency = "440";
        public int Samplerate = 44100;
        public int MicSecond = 2;
        string[] mDevice;
        string infoLog = "";
        private void test_unity_microphone()
        {
            GetMicrophoneDevice();
            StartRecordAudio();
            Debug.Log("开始录音");
        }
        private void test_unity_update_record()
        {
            Debug.Log("音量:" + get_record_volume() + "离散量:" + variance);
        }
        /// 获取麦克风设备
        public void GetMicrophoneDevice()
        {
            mDevice = Microphone.devices;
            if (mDevice.Length == 0)
                UnityEngine.Debug.Log("找不到麦克风设备!");
            else
            {
                Debug.Log("声音设备:" + mDevice[0]);
            }
        }

        /// 开始录音
        public void StartRecordAudio()
        {
            CurAudioSource = Main.game.camera.GetComponent<AudioSource>();
            CurAudioSource.Stop();
            CurAudioSource.loop = false;
            CurAudioSource.mute = true;
            CurAudioSource.clip = Microphone.Start(null, true, MicSecond, int.Parse(Frequency));
            while (!(Microphone.GetPosition(null) > 0))
            {

            }
            CurAudioSource.Play();
            Debug.Log("开始录音.....:" + CurAudioSource);
        }

        /// 停止录音
        public void StopRecordAudio()
        {
            Debug.Log("结束录音.....");
            if (!Microphone.IsRecording(null))
                return;
            Microphone.End(null);
            CurAudioSource.Stop();

        }

        float variance = 0f;
        int levelCount = 0;

        //过滤音量
        public float minVoice;

        public float get_record_volume()
        {
            if (Microphone.IsRecording(mDevice[0]))
            {
                // 采样数
                int sampleSize = 128;
                float[] samples = new float[sampleSize];
                int startPosition = Microphone.GetPosition(null) - (sampleSize + 1);

                if (startPosition < 0)
                {
                    // Debug.Log("startPosition:" + startPosition +", Pos:" + Microphone.GetPosition(null));
                    return -1;
                }

                // 得到数据
                CurAudioSource.clip.GetData(samples, startPosition);

                // Getting a peak on the last 128 samples
                float levelMax = 0;
                for (int i = 0; i < sampleSize; ++i)
                {
                    float wavePeak = samples[i];
                    if (levelMax < wavePeak)
                        levelMax = wavePeak;
                }

                return levelMax * 99;
            }
            else
            {
                Debug.Log("IsRecording:false");
            }
            return 0;

        }
        #endregion


[发帖际遇]: 风戏凤 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表