国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

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

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

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

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

最近需要實(shí)現(xiàn)一個(gè)透過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: "請稍后...",
                    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í)長 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);
},

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

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

注意點(diǎn)

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

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

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

以上是實(shí)例詳解uniapp如何實(shí)現(xiàn)電話錄音功能(附代碼)的詳細(xì)內(nèi)容。更多資訊請關(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)容,請聯(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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

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

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

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

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

uni-app?vue3介面請求怎麼封裝 uni-app?vue3介面請求怎麼封裝 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

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

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

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

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

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

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

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

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

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

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

See all articles