<listing id="r7f1v"></listing>
<listing id="r7f1v"><var id="r7f1v"></var></listing><listing id="r7f1v"><cite id="r7f1v"><i id="r7f1v"></i></cite></listing>
<listing id="r7f1v"><cite id="r7f1v"></cite></listing>
<listing id="r7f1v"></listing>
<listing id="r7f1v"></listing>
<thead id="r7f1v"><cite id="r7f1v"></cite></thead>
<listing id="r7f1v"></listing>
<listing id="r7f1v"><cite id="r7f1v"></cite></listing>
<listing id="r7f1v"></listing>
<listing id="r7f1v"></listing>
<progress id="r7f1v"><var id="r7f1v"></var></progress>
<listing id="r7f1v"></listing>
APP開發平臺 > Blog > APP開發實戰|使用APICloud開發app錄音功能

mp3Recorder 模塊封裝在 iOS、Android 下錄音直接生成 mp3,統一兩個平臺的錄音生成文件,方便雙平臺之間的交互,減少錄音完成后再轉碼的過程;同時提供分貝波形圖顯示 UI;使用該模塊前需要打開麥克風權限。本文以使用APICloud開發app錄音功能為例。

    效果圖如下:

固件要求:Android:4.0 及以上 iOS:8.0 及以上

該模塊提供了 8 個接口:

addEventListener  視頻結果和聲音分貝監聽;

startRecord       開始錄音

stopRecord       停止錄音

openVoiceLine    顯示線性波形圖

closeVoiceLine    關閉線性波形圖

setDecibels       設置波形圖的分貝值

pauseRecord      暫停錄音

resumeRecord     恢復錄音

方法詳解見 apicloud 平臺模塊開發文檔:

https://docs.apicloud.com/Client-API/Func-Ext/mp3Recorder

以下是代碼的詳細實現過程:

<!DOCTYPE html><html><head>
    <title>Module Develop</title>
    <meta charset="utf-8">
    <meta name="viewport"
        content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
    <style type="text/css">
        html,        body {            height: 100%
        }        body {            background-color: #fff;            margin: 0;
        }        #wrap {            height: 100%;            position: relative;
        }        #header {            padding-top: 20px;            background-color: #5082c2;            height: 44px;            position: relative;
        }        #header h1 {            font-size: 20px;            height: 44px;            line-height: 44px;            margin: 0em;            color: #fff;            margin-left: 100px;            margin-right: 100px;            text-align: center;
        }        #main {            display: -webkit-box;            -webkit-box-orient: vertical;            -webkit-box-pack: center;
        }        a.button {            display: -webkit-box;            -webkit-box-orient: vertical;            -webkit-box-pack: center;            -webkit-box-align: center;            height: 32px;            margin: 8px;            background-color: rgba(240, 240, 240, 1.0);            border-color: rgba(220, 220, 220, 1.0);            border-width: 2px;            border-style: solid;
        }        a.active {            background-color: rgba(240, 240, 240, 0.7);
        }    </style></head><body>
    <div id="wrap">
        <div id="main">
            <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
            <a class="button" tapmode="active" onclick="_addEventListener()">監聽錄音</a>
            <a class="button" tapmode="active" onclick="startRecord()">開始錄音</a>
            <a class="button" tapmode="active" onclick="pauseRecord()">暫停錄音</a>
            <a class="button" tapmode="active" onclick="resumeRecord()">恢復錄音</a>
            <a class="button" tapmode="active" onclick="stopRecord()">停止錄音</a>
            <a class="button" tapmode="active" onclick="openVoiceLine()">打開曲線</a>
            <a class="button" tapmode="active" onclick="closeVoiceLine()">關閉曲線</a>
            <a class="button" tapmode="active" onclick="setDecibels()">設置分貝值</a>
            <a class="button" tapmode="active" onclick="playAudio()">播放錄音</a>
            <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        </div>
    </div></body><script>

    apiready = function () {

    }    var mp3Path;    function _addEventListener() {       
        var demo = api.require('mp3Recorder');
        demo.addEventListener(function (ret, err) {
            alert(JSON.stringify(ret));            if (ret.evenType == 'endRecord') {
                mp3Path = ret.data.path;
            }
            api.toast({                msg: JSON.stringify(ret)
            });
        });
    }    function startRecord() {        var demo = api.require('mp3Recorder');
        demo.startRecord({            channel: 2, //聲道支持:1 單聲道 2 立體聲道
            sampleRates: 44100, //采樣率
        }, function (ret, err) {
            api.toast({                msg: JSON.stringify(ret)
            });
        });
    }    function pauseRecord() {        var demo = api.require('mp3Recorder');
        demo.pauseRecord(function (ret, err) {
            api.toast({ msg: JSON.stringify(ret) });
        });
    }    function resumeRecord() {        var demo = api.require('mp3Recorder');
        demo.resumeRecord(function (ret, err) {
            api.toast({ msg: JSON.stringify(ret) });
        });
    }    function stopRecord() {        var demo = api.require('mp3Recorder');
        demo.stopRecord(function (ret, err) {
            api.toast({                msg: JSON.stringify(ret)
            });
        });
    }    function openVoiceLine() {        var demo = api.require('mp3Recorder');
        demo.openVoiceLine({            rect: {                x: 0,                y: 0,                w: api.frameWidth,                h: api.frameHeight / 3
            },            fixedOn: api.frameName,            fixed: true,            isTransparent: false, //背景是否透明(透明時可以穿透點擊視圖)
        }, function (ret, err) {
            alert(JSON.stringify(ret));
        });
    }    function closeVoiceLine() {        var demo = api.require('mp3Recorder');
        demo.closeVoiceLine(function (ret, err) {
            api.toast({                msg: JSON.stringify(ret)
            });
        });
    }    function setDecibels() {        var demo = api.require('mp3Recorder');        var random = getRandom(0, 60);
        demo.setDecibels({            decibel: random
        }, function (ret, err) {
            api.toast({                msg: JSON.stringify(ret)
            });
        });
    }    function getRandom(min, max) {        var r = Math.random() * (max - min);        var re = Math.round(r + min);
        re = Math.max(Math.min(re, max), min)        return re;
    }    function playAudio() {
        api.startPlay({            path: mp3Path
        }, function (ret, err) {

        });
    }</script></html>

模塊使用相對比較簡單,可以在 APICloud APP開發平臺上創建應用并添加直接添加模塊,編譯后安裝到手機上,用示例代碼進行測試。方便開發者在 app開發的過程中使用。

APICloud-專業APP開發、app定制服務商,提供一站式移動應用解決方案,滿足您的各類需求,歡迎免費評估需求和獲取報價。

 

立即免費在線制作一個APP,新手注冊即送開發大禮包

提交app定制需求,免費獲取報價和周期:

電腦請點擊https://app.apicloud.com/index?uzchannel=500

手機請點擊http://www.cvrender.com/m/customizedservice


高效的App定制平臺,標準化、便宜、快!

提交APP定制開發需求
欧美激情一区二区,国产精品区免费视频,欧美激情视频在线播放,久久久亚洲综合久久98,久久国产精品99精品国产