Ionic-Native 中media插件的使用,錄音功能的實現

目前Ionic官方提供了很多native插件,方便調用手機等設備的原生接口。

最近在研究在ionic項目中加入錄音功能,完成簡單錄音功能後,並做下筆記,我用到的是Ionic native中的media插件和file插件。

簡單介紹下這兩個插件:(官方介紹:mediafile

media插件:實例化一個音頻對象,需要在手機目錄中創建一個音頻類型文件來存儲數據,可以實現對該音頻進行錄音,播放,暫停,設置音頻屬性等。

file插件:實例化一個file對象,可以對移動設備中目錄進行各種操作(創建目錄,文件,移除目錄,文件,把文件格式轉成base64格式等)。

安裝media和file插件

--media插件
ionic cordova plugin add cordova-plugin-media
npm install --save @ionic-native/media

--file插件
ionic cordova plugin add cordova-plugin-file
npm install --save @ionic-native/file

media插件的用法:

import { Media, MediaObject } from '@ionic-native/media';
constructor(private media: Media) { }

//也在app.module中引入,在provider中加入依賴

file插件的用法:

import { File } from '@ionic-native/file';
constructor(private file: File) { }

//也在app.module中引入,在provider中加入依賴

錄音功能的簡單實現:
1. 我的做法是先實例化一個file對象,通過它提供設備的存儲路徑。
2. 要弄清楚media.create()方法的參數。(文件的名字URL)
3. 這樣存儲的錄音文件由於不具備唯一性,所以每一次錄音都會被後一次的覆蓋掉。
4. 建議編寫工具類,如:日期;給錄音文件名字加一個日期前綴,文件就不會被覆蓋。
5. 計時器工具類等,提供錄音記時。

import { Media, MediaObject } from '@ionic-native/media';
import { File } from '@ionic-native/file';

export class Record {
constructor( private media: Media , private file: File ) { }

public filePath : any; //錄音文件的名字
public recordData : any; //錄音對象

startReocrd(){  //開始錄音

    //文件URL,文件存放在拓展內存卡中文件夾下,命名爲Record.mp3
    this.filePath = this.file.externalDataDirectory + "Record.mp3";

    //創建media對象,參數文件名字,上面的filePath也指定了文件存放位置和文件名字
    this.recordData = this.media.create(this.filePath);

    //開始錄音
    this.recordData.startRecord();
}

pauseRecord(){   

    //暫停錄音
    this.recordData.pauseRecord();

}

play(){   

    //播放錄音
    this.recordData.play();

}

resumeRecord(){   

    //繼續播放錄音
    this.recordData.resumeRecord();

}

stopRecord(){   

    //停止結束錄音
    this.recordData.stopRecord();

}}

簡單的錄音功能就實現了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章