亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
uniapp 實(shí)現(xiàn)打電話錄音功能
首頁(yè) web前端 uni-app 實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼)

實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼)

Jan 05, 2023 pm 04:41 PM
uni-app

這篇文章為大家?guī)?lái)了關(guān)於uniapp的相關(guān)知識(shí),其中主要介紹了怎麼用uniapp實(shí)現(xiàn)撥打電話並且還能同步錄音的功能,感興趣的朋友一起來(lái)看一下吧,希望對(duì)大家有幫助。

實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼)

uniapp 實(shí)現(xiàn)打電話錄音功能

最近需要實(shí)現(xiàn)一個(gè)透過(guò)uniapp 呼叫手機(jī)撥打電話的功能,撥打之後同時(shí)錄音,掛斷電話之後將錄音檔案進(jìn)行上傳,現(xiàn)在將幾個(gè)核心程式碼分享給大家!

const recorderManager = uni.getRecorderManager();
onLoad(option) {
            let self = this;
            recorderManager.onStop(function (res) {
                console.log("res",res)
                self.end_time = Math.round(new Date().getTime() / 1000);
                let voicePath = res.tempFilePath;
                self.voicePath = voicePath;
                self.closeTimeOut();
                uni.showToast({
                    icon: 'loading',
                    title: "請(qǐng)稍后...",
                    duration: 0
                });
                uni.uploadFile({
                    url: self.upload_url,
                    filePath: voicePath,
                    name: "file",
                    formData: {
                        id: self.phoneInfo.id,
                        start_time: self.start_time,
                        end_time: self.end_time,
                        phone: self.phoneNumber
                    },
                    header: {
                        Authorization: "Bearer " + uni.getStorageSync(EnumData.token)
                    },
                    success: (res) => {
                        // console.log("文件上傳成功")
                        console.log(res.data);
                    },
                    fail(err) {
                        console.log("文件上傳失敗")
                        console.log(err);
                    },
                    complete() {
                        self.start_time = 0;
                        self.end_time = 0;
                        uni.hideToast();
                    }
                })
            });
            this.getCallStatus();
}
getCallStatus() {
    let that = this;
    let maintest = plus.android.runtimeMainActivity();
    let Contexttest = plus.android.importClass("android.content.Context");
    let telephonyManager = plus.android.importClass("android.telephony.TelephonyManager");
    let telManager = plus.android.runtimeMainActivity().getSystemService(Contexttest.TELEPHONY_SERVICE);
    let receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
        onReceive: function (Contexttest, intent) {
            plus.android.importClass(intent);
            let phoneStatus = telManager.getCallState();
            that.callStatus = phoneStatus; //電話狀態(tài) 0->空閑狀態(tài) 1->振鈴狀態(tài) 2->通話存在
            switch (phoneStatus) {
                case 0:
                    console.log("3、電話掛斷,上傳錄音")
                    // 結(jié)束錄音
                    recorderManager.stop();
                    break;
                case 1:
                    // console.log('1、振鈴狀態(tài)');
                    break;
                case 2:
                    console.log('2、通話存在')
                    // 延遲錄音
                    that.start_time = Math.round(new Date().getTime() / 1000);
                    recorderManager.start({
                        duration: EnumData.audioDuration, // 時(shí)長(zhǎng) 10分鐘
                        sampleRate: EnumData.audioSampleRate, // 碼率
                    });
                    break;
            }
        }
    });
    let IntentFilter = plus.android.importClass('android.content.IntentFilter');
    let filter = new IntentFilter();
    filter.addAction(telephonyManager.ACTION_PHONE_STATE_CHANGED);
    maintest.registerReceiver(receiver, filter);
},

需要申請(qǐng)的權(quán)限,可以放到App.vue 中

if (plus.os.name == 'Android') {
      plus.android.requestPermissions(
         ['android.permission.ANSWER_PHONE_CALLS',//手動(dòng) 掛斷和接聽(tīng) 需要這個(gè)權(quán)限
          "android.permission.MODIFY_AUDIO_SETTINGS",//手動(dòng) 掛斷和接聽(tīng) 需要這個(gè)權(quán)限
          "android.permission.CALL_PHONE",//手動(dòng) 掛斷和接聽(tīng) 需要這個(gè)權(quán)限
          "android.permission.READ_PHONE_STATE",//>監(jiān)聽(tīng)電話狀態(tài) 需要這個(gè)權(quán)限
          "android.permission.READ_CALL_LOG",//獲取號(hào)碼需要這個(gè)權(quán)限
          "android.permission.READ_AUDIO" // 錄音權(quán)限
          ],
      function(resultObj) {
          var result = 0;
          for (var i = 0; i < resultObj.granted.length; i++) {
          var grantedPermission = resultObj.granted[i];
          console.log(&#39;已獲取的權(quán)限:&#39; + grantedPermission);
          result = 1
      }
      for (var i = 0; i < resultObj.deniedPresent.length; i++) {
          var deniedPresentPermission = resultObj.deniedPresent[i];
          console.log(&#39;拒絕本次申請(qǐng)的權(quán)限:&#39; + deniedPresentPermission);
          result = 0
      }
      for (var i = 0; i < resultObj.deniedAlways.length; i++) {
          var deniedAlwaysPermission = resultObj.deniedAlways[i];
          console.log(&#39;永久拒絕申請(qǐng)的權(quán)限:&#39; + deniedAlwaysPermission);
          result = -1
      }
     },  function(error) {
          console.log(&#39;申請(qǐng)權(quán)限錯(cuò)誤:&#39; + error.code + " = " + error.message);
     } );
}

注意點(diǎn)

  • 調(diào)試模式下可以正常監(jiān)聽(tīng)通話掛斷並且上傳文件的,但是打包之後就失效?

一般的手機(jī)打包是可以正常使用的,我用的是oneplus7 , 打包後安裝正常使用,部分手機(jī)需要到系統(tǒng)設(shè)定的權(quán)限中,將應(yīng)用的【開(kāi)啟手機(jī)設(shè)備狀態(tài)碼】進(jìn)行開(kāi)啟即可,目前遇到的就這個(gè)。

推薦學(xué)習(xí):《uni-app影片教學(xué)

以上是實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCode中如何開(kāi)發(fā)uni-app? (教學(xué)分享) VSCode中如何開(kāi)發(fā)uni-app? (教學(xué)分享) May 13, 2022 pm 08:11 PM

VSCode中如何開(kāi)發(fā)uni-app?以下這篇文章跟大家分享一下VSCode中開(kāi)發(fā)uni-app的教學(xué)課程,這可能是最好、最詳細(xì)的教學(xué)了??靵?lái)看看!

利用uniapp開(kāi)發(fā)一個(gè)簡(jiǎn)單的地圖導(dǎo)航 利用uniapp開(kāi)發(fā)一個(gè)簡(jiǎn)單的地圖導(dǎo)航 Jun 09, 2022 pm 07:46 PM

怎麼利用uniapp開(kāi)發(fā)一個(gè)簡(jiǎn)單的地圖導(dǎo)航?本篇文章就來(lái)提供大家一個(gè)製作簡(jiǎn)單地圖的思路,希望對(duì)大家有幫助!

uni-app?vue3介面請(qǐng)求怎麼封裝 uni-app?vue3介面請(qǐng)求怎麼封裝 May 11, 2023 pm 07:28 PM

uni-app接口,全域方法封裝1.在根目錄建立一個(gè)api文件,在api資料夾中建立api.js,baseUrl.js和http.js檔案2.baseUrl.js檔案程式碼exportdefault"https://XXXX .test03.qcw800.com/api/"3.http.js檔案程式碼exportfunctionhttps(opts,data){lethttpDefaultOpts={url:opts.url,data:data,method:opts.method

手把手帶你開(kāi)發(fā)一個(gè)uni-app日曆插件(並發(fā)布) 手把手帶你開(kāi)發(fā)一個(gè)uni-app日曆插件(並發(fā)布) Jun 30, 2022 pm 08:13 PM

這篇文章手把手帶大家開(kāi)發(fā)一個(gè)uni-app日曆插件,介紹下一個(gè)日曆插件是如何從開(kāi)發(fā)到發(fā)布的,希望對(duì)大家有幫助!

聊聊如何利用uniapp開(kāi)發(fā)一個(gè)貪吃蛇小遊戲吧! 聊聊如何利用uniapp開(kāi)發(fā)一個(gè)貪吃蛇小遊戲吧! May 20, 2022 pm 07:56 PM

如何利用uniapp開(kāi)發(fā)一個(gè)貪吃蛇小遊戲?以下這篇文章就手把手帶大家在uniapp中實(shí)現(xiàn)貪吃蛇小遊戲,希望對(duì)大家有幫助!

實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼) 實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼) Jan 05, 2023 pm 04:41 PM

這篇文章為大家?guī)?lái)了關(guān)於uniapp的相關(guān)知識(shí),其中主要介紹了怎麼用uniapp實(shí)現(xiàn)撥打電話並且還能同步錄音的功能,感興趣的朋友一起來(lái)看一下吧,希望對(duì)大家有幫助。

實(shí)例講解uniapp實(shí)現(xiàn)多選框的全選功能 實(shí)例講解uniapp實(shí)現(xiàn)多選框的全選功能 Jun 22, 2022 am 11:57 AM

這篇文章為大家?guī)?lái)了關(guān)於uniapp的相關(guān)知識(shí),其中主要整理了實(shí)現(xiàn)多選框的全選功能的相關(guān)問(wèn)題,無(wú)法實(shí)現(xiàn)全選的原因是動(dòng)態(tài)修改checkbox的checked字段時(shí),界面上的狀態(tài)能夠即時(shí)變化,但無(wú)法觸發(fā)checkbox-group的change事件,下面一起來(lái)看一下,希望對(duì)大家有幫助。

聊聊uniapp的scroll-view下拉加載 聊聊uniapp的scroll-view下拉加載 Jul 14, 2022 pm 09:07 PM

uniapp怎麼實(shí)作scroll-view下拉載入?以下這篇文章聊聊uniapp微信小程式scroll-view的下拉加載,希望對(duì)大家有幫助!

See all articles