日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

背景音乐的实现

發(fā)布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 背景音乐的实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
通過利用Service來實現(xiàn)該功能 將要播放的歌曲放入raw文件夾中

[html]?view plaincopy
  1. <strong>新建一個AudioService?類,<span?style="font-family:?Arial,?Helvetica,?sans-serif;">AudioService?類</span><span?style="font-family:?Arial,?Helvetica,?sans-serif;">繼承?android.app.Service,幾個有關(guān)Service?的重要概念如下:</span>??
  2. ??
  3. 1.?Service?對象以?separated?process?的方式執(zhí)行,這表示?Service?與?UI(Activity)并不在同一個?process?里執(zhí)行,而是各自在不同的?process?執(zhí)行。??
  4. ??
  5. 2.?Android應(yīng)用程序是在?Activity?啟動與停止?Service。??
  6. ??
  7. 3.?重載(override)onStart()?方法(method)在?Service?被啟動,執(zhí)行我們想要的背景功能。??
  8. ??
  9. 4.?重載?onDestroy()?方法在?Service?被停止時,停止執(zhí)行中的背景功能。</strong>??
[html]?view plaincopy
  1. <pre?name="code"?class="html"><strong>2、AudioService類??
  2. [java]?</strong>??
  3. package?demo.camera;????
  4. import?android.app.Service;????
  5. import?android.content.Intent;????
  6. import?android.media.MediaPlayer;????
  7. import?android.os.Binder;????
  8. import?android.os.IBinder;????
  9. import?android.widget.MediaController.MediaPlayerControl;????
  10. /**???
  11. ?*?為了可以使得在后臺播放音樂,我們需要Service???
  12. ?*?Service就是用來在后臺完成一些不需要和用戶交互的動作???
  13. ?*?@author?Administrator???
  14. ?*???
  15. ?*/????
  16. public?class?AudioService?extends?Service?implements?MediaPlayer.OnCompletionListener{????
  17. ????????
  18. ????MediaPlayer?player;????
  19. ????????
  20. ????private?final?IBinder?binder?=?new?AudioBinder();????
  21. ????@Override????
  22. ????public?IBinder?onBind(Intent?arg0)?{????
  23. ????????//?TODO?Auto-generated?method?stub????
  24. ????????return?binder;????
  25. ????}????
  26. ????/**???
  27. ?????*?當Audio播放完的時候觸發(fā)該動作???
  28. ?????*/????
  29. ????@Override????
  30. ????public?void?onCompletion(MediaPlayer?player)?{????
  31. ????????//?TODO?Auto-generated?method?stub????
  32. ????????stopSelf();//當結(jié)束時,便結(jié)束Service????
  33. ????}????
  34. ????????
  35. ????//實例化MediaPlayer對象????
  36. ????public?void?onCreate(){????
  37. ????????super.onCreate();????
  38. ????????//我們從raw文件夾中獲取一個應(yīng)用自帶的mp3文件????
  39. ????????player?=?MediaPlayer.create(this,?R.raw.eason);????
  40. ????????player.setOnCompletionListener(this);????
  41. ????}????
  42. ????????
  43. ????/**???
  44. ?????*?該方法在SDK2.0才開始有的,用來替代原來的onStart方法???
  45. ?????*/????
  46. ????public?int?onStartCommand(Intent?intent,?int?flags,?int?startId){????
  47. ????????if(!player.isPlaying()){????
  48. ????????????player.start();????
  49. ????????}????
  50. ????????return?START_STICKY;????
  51. ????}????
  52. ????????
  53. ????public?void?onDestroy(){????
  54. ????????//super.onDestroy();????
  55. ????????if(player.isPlaying()){????
  56. ????????????player.stop();????
  57. ????????}????
  58. ????????player.release();????
  59. ????}????
  60. ????????
  61. ????//為了和Activity交互,我們需要定義一個Binder對象????
  62. ????class?AudioBinder?extends?Binder{????
  63. ????????????
  64. ????????//返回Service對象????
  65. ????????AudioService?getService(){????
  66. ????????????return?AudioService.this;????
  67. ????????}????
  68. ????}????
  69. ????????
  70. ????//后退播放進度????
  71. ????public?void?haveFun(){????
  72. ????????if(player.isPlaying()?&&?player.getCurrentPosition()>2500){????
  73. ????????????player.seekTo(player.getCurrentPosition()-2500);????
  74. ????????}????
  75. ????}????
  76. }????
[html]?view plaincopy
  1. <pre?name="code"?class="html">至此,一個完整的服務(wù)生成,接下來是在Activity中啟動服務(wù)。??
  2. <strong>修改?AndroidManifest.xml:??
  3. ??
  4. 在?Package?Explorer?視窗里找到目前?Android?項目的資訊描述檔,名稱為?AndroidManifest.xml。這是一個用來描述?Android?應(yīng)用程序「整體資訊」的文件,每個?Android?應(yīng)用程序項目都會有一個。在這里修改?Androidmanifest.xml?的目的是為了「?Android?應(yīng)用程序加入一個?Service?類別」,這樣才有辦法驅(qū)動?Service。</strong>??
  5. [html]???
[html]?view plaincopy
  1. <?xml?version="1.0"?encoding="utf-8"?>????
  2. <manifest?xmlns:android="http://schemas.android.com/apk/res/android"????
  3. ????package="com.android"????
  4. ????android:versionCode="1"????
  5. ????android:versionName="1.0"?>????
  6. ????
  7. ????<uses-sdk?android:minSdkVersion="10"?/>????
  8. ????
  9. ????<application????
  10. ????????android:icon="@drawable/ic_launcher"????
  11. ????????android:label="@string/app_name"?>????
  12. ????????<activity????
  13. ????????????android:name=".WebTestActivity"????
  14. ????????????android:label="@string/app_name"?>????
  15. ????????????<intent-filter>????
  16. ????????????????<action?android:name="android.intent.action.MAIN"?/>????
  17. ????
  18. ????????????????<category?android:name="android.intent.category.LAUNCHER"?/>????
  19. ????????????</intent-filter>????
  20. ????????</activity>????
  21. ????????<service????
  22. ????????????<pre?name="code"?class="html">????????????android:name=".AudioService"??

android:exported="true" android:process=":remote"> </service> </application> </manifest>

轉(zhuǎn)載于:https://www.cnblogs.com/whm1234/p/4650893.html

總結(jié)

以上是生活随笔為你收集整理的背景音乐的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。