最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開(kāi)發(fā)中播放聲音的兩種方法分析

 更新時(shí)間:2017年09月01日 10:35:21   作者:pku_android  
這篇文章主要介紹了Android開(kāi)發(fā)中播放聲音的兩種方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Android音頻播放的常用函數(shù)、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Android開(kāi)發(fā)中播放聲音的兩種方法。分享給大家供大家參考,具體如下:

在Android中,音頻、視頻等多媒體元素的加入,使得應(yīng)用程序的用戶體驗(yàn)更好??梢哉f(shuō),現(xiàn)在的手機(jī),已經(jīng)遠(yuǎn)遠(yuǎn)不只作為通信工具,更成為娛樂(lè)、辦公的必備產(chǎn)品。

Android提供了簡(jiǎn)單的音頻API。一般大家使用的是MediaPlayer播放音頻,這也是最常見(jiàn)的一種播放聲音的工具。這種工具在互聯(lián)網(wǎng)上有大量的實(shí)例,因此在此只做簡(jiǎn)單的介紹。

對(duì)播放行為的控制是三個(gè)大家非常熟悉的方法:start()、stop()pause()。

通過(guò)static MediaPlayer create(Context, Uri)這個(gè)方法,可以獲得一個(gè)新創(chuàng)建的MediaPlayer對(duì)象。

在播放過(guò)程中,有幾個(gè)可以監(jiān)聽(tīng)播放過(guò)程的監(jiān)聽(tīng)器,如:

setOnCompletionListener(MediaPlayer.OnCompletionListener listener)

監(jiān)聽(tīng)音頻播放結(jié)束;

setOnErrorListener(MediaPlayer.OnErrorListener listener)

監(jiān)聽(tīng)播放過(guò)程中的錯(cuò)誤事件;

setOnPreparedListener(MediaPlayer.OnPreparedListener listener)

當(dāng)prepare()被調(diào)用時(shí)觸發(fā)。

然而,使用MediaPlayer播放時(shí),也有一些問(wèn)題。我們知道MediaPlayer在創(chuàng)建和銷毀時(shí)都會(huì)耗費(fèi)大量的系統(tǒng)資源,且創(chuàng)建和銷毀的時(shí)間相對(duì)較長(zhǎng)。此外,如果我們需要在同一時(shí)刻播放很多聲音,MediaPlayer是不支持的。

因此,我們需要一個(gè)更加輕量級(jí)的聲音播放工具。

Android提供了另外一種,叫做SoundPool,它適合播放那些需要反復(fù)播放,但時(shí)間較短的音效。它支持同時(shí)播放多種聲音,這些聲音在系統(tǒng)開(kāi)始時(shí)會(huì)加載到列表中,按照這些聲音的id,我們可以調(diào)用這些音效。

下面我們進(jìn)入一個(gè)實(shí)例看看SoundPool到底是怎么工作的。

例如,現(xiàn)在在一個(gè)五子棋游戲中,我們需要在棋子落盤(pán)的時(shí)候播放一段聲音。我們可以利用SoundPool,因?yàn)樗鼤r(shí)間很短,而且需要反復(fù)播放,并且我們不希望聲音占用太大資源。

先看看代碼:

private SoundPool soundPool;
soundPool= newSoundPool(10,AudioManager.STREAM_SYSTEM,5);
soundPool.load(this,R.raw.collide,1);
soundPool.play(1,1, 1, 0, 0, 1);

代碼非常簡(jiǎn)單,第一行是聲明了一個(gè)SoundPool對(duì)象,這個(gè)一般是作為類的成員屬性出現(xiàn)的。第二行將soundPool實(shí)例化,第一個(gè)參數(shù)為soundPool可以支持的聲音數(shù)量,這決定了Android為其開(kāi)設(shè)多大的緩沖區(qū),第二個(gè)參數(shù)為聲音類型,在這里標(biāo)識(shí)為系統(tǒng)聲音,除此之外還有AudioManager.STREAM_RING以及AudioManager.STREAM_MUSIC等,系統(tǒng)會(huì)根據(jù)不同的聲音為其標(biāo)志不同的優(yōu)先級(jí)和緩沖區(qū),最后參數(shù)為聲音品質(zhì),品質(zhì)越高,聲音效果越好,但耗費(fèi)更多的系統(tǒng)資源。

第三行,系統(tǒng)為soundPool加載聲音,第一個(gè)參數(shù)為上下文參數(shù),第二個(gè)參數(shù)為聲音的id,一般我們將聲音信息保存在res的raw文件夾下,如下圖所示。

第三個(gè)參數(shù)為聲音的優(yōu)先級(jí),當(dāng)多個(gè)聲音沖突而無(wú)法同時(shí)播放時(shí),系統(tǒng)會(huì)優(yōu)先播放優(yōu)先級(jí)高的。

第四行就是播放了,第一個(gè)參數(shù)為id,id即為放入到soundPool中的順序,比如現(xiàn)在collide.wav是第一個(gè),因此它的id就是1。第二個(gè)和第三個(gè)參數(shù)為左右聲道的音量控制。第四個(gè)參數(shù)為優(yōu)先級(jí),由于只有這一個(gè)聲音,因此優(yōu)先級(jí)在這里并不重要。第五個(gè)參數(shù)為是否循環(huán)播放,0為不循環(huán),-1為循環(huán)。最后一個(gè)參數(shù)為播放比率,從0.5到2,一般為1,表示正常播放。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫(kù)操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解Android 華為凹口屏適配小結(jié)

    詳解Android 華為凹口屏適配小結(jié)

    這篇文章主要介紹了Android 華為凹口屏適配小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Android 模仿QQ側(cè)滑刪除ListView功能示例

    Android 模仿QQ側(cè)滑刪除ListView功能示例

    這篇文章主要介紹了Android 模仿QQ側(cè)滑刪除ListView功能示例,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • Android如何遍歷特定目錄下所有文件

    Android如何遍歷特定目錄下所有文件

    這篇文章主要為大家詳細(xì)介紹了Android如何遍歷特定目錄下所有文件的代碼,供大家參考,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android自定義Dialog實(shí)現(xiàn)加載對(duì)話框效果

    Android自定義Dialog實(shí)現(xiàn)加載對(duì)話框效果

    這篇文章將介紹如何定制當(dāng)今主流的對(duì)話框,通過(guò)自定義dialog實(shí)現(xiàn)加載對(duì)話框效果,具體實(shí)現(xiàn)代碼大家通過(guò)本文學(xué)習(xí)吧
    2018-05-05
  • Android EditText限制輸入字?jǐn)?shù)的方法

    Android EditText限制輸入字?jǐn)?shù)的方法

    這篇文章主要介紹了Android EditText限制輸入字?jǐn)?shù)的方法,涉及Android針對(duì)EditText文本與字符串操作相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • Android實(shí)現(xiàn)調(diào)用系統(tǒng)分享功能示例的總結(jié)

    Android實(shí)現(xiàn)調(diào)用系統(tǒng)分享功能示例的總結(jié)

    這篇文章主要介紹了通過(guò)Android調(diào)用系統(tǒng)分享文本信息、單張圖片、多個(gè)文件和指定分享到微信、QQ,同時(shí)分享圖片和文字的功能示例,小編覺(jué)得挺不錯(cuò),一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Android仿qq頂部消息欄效果

    Android仿qq頂部消息欄效果

    這篇文章主要介紹了Android仿qq頂部消息欄效果,需要的朋友可以參考下
    2018-04-04
  • 詳解Android 藍(lán)牙通信方式總結(jié)

    詳解Android 藍(lán)牙通信方式總結(jié)

    這篇文章主要介紹了詳解Android 藍(lán)牙通信方式總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2013-11-11
  • activity 獲取rootView 設(shè)置backGroundColor的方法

    activity 獲取rootView 設(shè)置backGroundColor的方法

    下面小編就為大家?guī)?lái)一篇activity 獲取rootView 設(shè)置backGroundColor的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖

    使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖

    折線圖是Android開(kāi)發(fā)中經(jīng)常會(huì)碰到的效果,但由于涉及自定義View的知識(shí),對(duì)許多剛?cè)腴T(mén)的小白來(lái)說(shuō)會(huì)覺(jué)得很高深,下面這篇文章主要給大家介紹了關(guān)于如何使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評(píng)論

龙井市| 深泽县| 佳木斯市| 禹州市| 娱乐| 达孜县| 汉源县| 苏尼特右旗| 庄浪县| 方正县| 沂水县| 米林县| 资溪县| 聂荣县| 新田县| 洛川县| 苏尼特右旗| 中卫市| 海林市| 屏南县| 冷水江市| 大兴区| 永吉县| 平顶山市| 韩城市| 西吉县| 白玉县| 信宜市| 临高县| 长沙县| 星子县| 汝阳县| 永胜县| 马山县| 西林县| 铁岭市| 探索| 双峰县| 阜康市| 西昌市| 永济市|