<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 1.背景 ? ? ? ? 在開發之魚APP的時候,本來音樂播放器是之魚中的一個模塊,用來播放音樂使用,但是隨著項目代碼的編寫,越來越復雜,決定將其單獨的拉出來,制作為單獨的APP - 音心播放器 。 ? ? ? ? 寫一個 音樂播放器 可以很好的鍛煉自己在Android 高級上的學習 比如 :BroadCastReceiver , Service , Notification ,Activity 等之間的信息傳遞與控制。 ## 2.數據來源 ? ?因為音樂的資源API不好找,大多數都不提供音樂播放接口,所以選擇了[易源AP](https://www.showapi.com/api/apiList)I(showAPi .com) 中的 QQ音樂接口,用著還行,而且還是免費的,只需要注冊,訂閱就可以使用了,返回的均是JSON數據。其他的音樂數據API的話,找了很久,應該就只有豆瓣FM 提供的 API了 ,沒有使用過,這里就不做過多的評價。 ? ? ? ? ? ? ? ??![](https://box.kancloud.cn/2016-04-19_57157646957b6.jpg) ? ?提供的API 包括 :? ? ? (1)熱門榜單 : 可以根據不同的分類信息, 獲得不同的 榜單列表數據 ,比如 歐美 ,鄉音 ,搖滾 ;不過返回的數據中是沒有 專輯圖片的 ,可以通過下面的接口 獲取專輯圖片; ? ? ? ? **單條數據展示 :** ~~~ { "albumid": 1209391, "downUrl": "http://tsmusic24.tc.qq.com/105013301.mp3", "seconds": 233, "singerid": 20697, "singername": "原子霏", "songid": 105013301, "songname": "羋月傳", "url": "http://ws.stream.qqmusic.qq.com/105013301.m4a?fromtag=46" } ~~~ ? ? (2)根據歌曲ID 查詢 歌詞 :這個用起來還可以,提供了歌詞信息,需要自己寫一個單獨的解析方法,進行解析; ? ? ?**歌詞數據 展示 :** ? ~~~ { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_body": { "lyric": "[ti:海闊天空 (Edited Version)] [ar:BEYOND] [al:Words & Music Final Live With 家駒] [by:] [offset:0] [00:00.92]海闊天空 - BEYOND [00:02.27]詞:黃家駒 [00:03.32]曲:黃家駒 [00:04.30] [00:19.17]今天我 寒夜里看雪飄過 [00:25.75]懷著冷卻了的心窩飄遠方 [00:30.77] [00:31.60]風雨里追趕 霧里分不清影蹤 [00:37.82]天空海闊你與我 可會變 [00:43.27] [00:44.14]多少次迎著冷眼與嘲笑 [00:50.55]從沒有放棄過心中的理想 [00:56.02] [00:56.67]一剎那恍惚 若有所失的感覺 [01:02.65]不知不覺已變淡 心里愛 [01:08.64] [01:09.66]原諒我這一生不羈放縱愛自由 [01:15.56] [01:16.40]也會怕有一天會跌倒 [01:22.72]背棄了理想誰人都可以 [01:27.84] [01:28.51]哪會怕有一天只你共我 [01:33.89] [01:43.41]今天我 寒夜里看雪飄過 [01:49.76]懷著冷卻了的心窩飄遠方 [01:54.86] [01:55.60]風雨里追趕 霧里分不清影蹤 [02:01.92]天空海闊你與我 可會變 [02:06.61] [02:08.70]原諒我這一生不羈放縱愛自由 [02:14.86] [02:15.55]也會怕有一天會跌倒 [02:21.30] [02:21.83]背棄了理想誰人都可以 [02:27.17] [02:28.08]哪會怕有一天只你共我 [02:33.08] [02:38.06]仍然自由自我 [02:40.57] [02:41.42]永遠高唱我歌 [02:44.42]走遍千里 原諒我這一生不羈放縱愛自由 [02:55.20] [02:56.14]也會怕有一天會跌倒 [03:02.26]背棄了理想 誰人都可以 [03:07.48] [03:08.67]哪會怕有一天只你共我 [03:13.58] [03:14.51]原諒我這一生不羈放縱愛自由 [03:21.27]也會怕有一天會跌倒 [03:26.00] [03:27.38]背棄了理想誰人都可以 [03:31.94] [03:33.61]哪會怕有一天只你共我", "lyric_txt": " 海闊天空 BEYOND 詞:黃家駒 曲:黃家駒 今天我 寒夜里看雪飄過 懷著冷卻了的心窩飄遠方 風雨里追趕 霧里分不清影蹤 天空海闊你與我 可會變 多少次迎著冷眼與嘲笑 從沒有放棄過心中的理想 一剎那恍惚 若有所失的感覺 不知不覺已變淡 心里愛 原諒我這一生不羈放縱愛自由 也會怕有一天會跌倒 背棄了理想誰人都可以 哪會怕有一天只你共我 今天我 寒夜里看雪飄過 懷著冷卻了的心窩飄遠方 風雨里追趕 霧里分不清影蹤 天空海闊你與我 可會變 原諒我這一生不羈放縱愛自由 也會怕有一天會跌倒 背棄了理想誰人都可以 哪會怕有一天只你共我 仍然自由自我 永遠高唱我歌 走遍千里 原諒我這一生不羈放縱愛自由 也會怕有一天會跌倒 背棄了理想 誰人都可以 哪會怕有一天只你共我 原諒我這一生不羈放縱愛自由 也會怕有一天會跌倒 背棄了理想誰人都可以 哪會怕有一天只你共我", "ret_code": 0 } } ~~~ ? ? ? ?(3) 根據人名,歌名查詢歌曲 :這個可以做搜索歌曲,也提供圖片信息,在熱門榜單接口中,不提供圖片信息的,所以可以使用這個接口,拿到歌曲的圖片信息包括歌手圖片信息; ? ? ? ?**單條數據信息展示 :** ****** ~~~ { "albumid": 62660, "albummid": "00449cf44ccf8n", "albumname": "Words & Music Final Live With 家駒", "albumpic_big": "http://i.gtimg.cn/music/photo/mid_album_300/8/n/00449cf44ccf8n.jpg", "albumpic_small": "http://i.gtimg.cn/music/photo/mid_album_90/8/n/00449cf44ccf8n.jpg", "downUrl": "http://tsmusic24.tc.qq.com/4833285.mp3", "m4a": "http://ws.stream.qqmusic.qq.com/4833285.m4a?fromtag=46", "media_mid": "001fhSpB0P7buZ", "singerid": 2, "singername": "BEYOND", "songid": 4833285, "songname": "海闊天空 (Edited Version)" ~~~ *** *** *** *** ? ? ? ? ? ? ? ??![](https://box.kancloud.cn/2016-04-19_5715764b33606.jpg) 3.易源API SDK的使用 ? ? ? ? ? ?必須使用易源SDK ,才可以進行數據請求,這樣可以省很多事,SDK中封裝了,請求所必須的系統級參數,所以使用官方提供的SDK,很簡單就可以實現調用,方便開發,如果你能力可以,自己可以寫一個類,來提供系統級參數。 ? ? 官方提供了多個開發語言的版本SDK, 下載對應版本即可,我們使用的是Android ,所以下載Android 的(非Java)版本。 ? ? ? ? ? ? ? ? ??![](https://box.kancloud.cn/2016-04-19_5715764b43914.jpg) ? ? 最后,還提供了請求源碼,自己可以進行簡單封裝(不封裝也可以)使用。 ? ?Android 的 請求源碼 : ? ? ? 參數 : (1) appid 需要申請; ? ? ? ? ? ? ? ? (2) secret 創建后就生成了; ? ? ? ? ? ? ? ? (3) typeid ?分類 信息 ~~~ //以下代碼僅為演示用,具體傳入參數請參看接口描述詳情頁. //需要引用android-async-http庫(sdk中已經包括此jar包) ,其項目地址為: http://loopj.com/android-async-http/ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView txt = (TextView) this.findViewById(R.id.textView1); Button myBtn = (Button) this.findViewById(R.id.button1); final AsyncHttpResponseHandler resHandler=new AsyncHttpResponseHandler(){ public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable e) { //做一些異常處理 e.printStackTrace(); } public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { System.out.println("response is :"+new String(responseBody,"utf-8")); txt.setText(new String(responseBody,"utf-8")+new Date()); //在此對返回內容做處理 } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }}; myBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { new ShowApiRequest( "http://route.showapi.com/213-4", "appid", "secret") .setResponseHandler(resHandler) .addTextPara("topid", "") .post(); } }); } ~~~ 4.總結?   一個音樂播放器,不僅可以練習四大組件,而且還練習整個app的結構,包括網絡請求等。其中最重要的是Service ,廣播 ,通知 之間的通信將在后面詳細列出。功能很簡單 ,實現音樂列表,播放控制(上一曲,下一曲,播放,暫停),歌詞滾動顯示,進度條顯示,倒計時實現。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看