安卓音樂播放器歌詞滾動顯示
——— 歌德
本文系轉載,出處已經標明,以前寫播放器苦於音樂歌詞的顯示問題,當時解決的方法是去github找開源控制元件,無奈是別人的輪子,尺寸大小不對,只好湊活著用了,無聊逛了下csdn,發現有這篇文章,果斷收藏。以後歌詞顯示就直接自己造輪子用了~~~~~~~~~
實現功能:
歌詞顯示及滾動事件實現
ViewPager使用
後續將博文,將實現已下載音樂掃描功能和已存在歌曲歌詞下載。
因為,沒有自己的伺服器,所以網路音樂所有相關功能(包含搜尋音樂、下載音樂、下載歌詞)均無法保證時效性,建議,儘快下載和練習;如果你下載時候,已經因為我採集的伺服器更改規則,請給我留言,如果可以解決,我將在有空的時候獻上新的原始碼。
截止到目前的原始碼下載:
http://download.csdn.net/album/detail/3105
(最新的,請下載最後一個,本博文對應版本2.1;如果需要逐步實現的過程,請下載所有)
歡迎移動開發愛好者交流:我的微信是iwanghang
另外,我打算開始找工作,如果瀋陽或周邊城市公司有意,也請與我聯絡。
實現效果如圖:
PlayActivity如下:
- package com.iwanghang.drmplayer;
- import android.graphics.Bitmap;
-
import
- import android.os.Bundle;
- import android.os.Environment;
- import android.os.Handler;
- import android.os.Message;
- import android.support.v4.view.ViewPager;
- import android.support.v4.view.ViewPager.OnPageChangeListener;
-
import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ImageView;
- import android.widget.SeekBar;
- import android.widget.SeekBar.OnSeekBarChangeListener;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.douzi.android.view.DefaultLrcBuilder;
- import com.douzi.android.view.ILrcBuilder;
- import com.douzi.android.view.ILrcView;
- import com.douzi.android.view.LrcRow;
- import com.douzi.android.view.LrcView;
- import com.iwanghang.drmplayer.adapter.ViewPagerAdapter;
- import com.iwanghang.drmplayer.utils.Constant;
- import com.iwanghang.drmplayer.utils.ImageUtils;
- import com.iwanghang.drmplayer.utils.MediaUtils;
- import com.iwanghang.drmplayer.vo.Mp3Info;
- import com.lidroid.xutils.db.sqlite.Selector;
- import com.lidroid.xutils.exception.DbException;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.lang.ref.WeakReference;
- import java.util.ArrayList;
- import java.util.List;
- importstatic com.iwanghang.drmplayer.PlayService.ORDER_PLAY;
- importstatic com.iwanghang.drmplayer.PlayService.RANDOM_PLAY;
- importstatic com.iwanghang.drmplayer.PlayService.SINGLE_PLAY;
- /**
- * PlayActivity 點選MyMusicListFragment(本地音樂)底部UI中的專輯封面圖片開啟的Activity
- */
- publicclass PlayActivity extends BaseActivity implements OnClickListener, OnSeekBarChangeListener ,OnPageChangeListener {
- private TextView textView2_title;//歌名
- private ImageView imageView1_ablum;//專輯封面圖片
- private SeekBar seekBar1;//進度條
- private TextView textView1_start_time, textView1_end_time;//開始時間,結束時間
- private ImageView imageView1_play_mode;//選單
- private ImageView imageView3_previous, imageView2_play_pause, imageView1_next;//上一首,播放暫停,下一首
- private ImageView imageView1_ablum_reflection;//專輯封面圖片倒影
- private ImageView imageView1_favorite;//收藏按鈕
- //private ArrayList<Mp3Info> mp3Infos;
- //private int position;//當前播放的位置
- privateboolean isPause = false;//當前播放的是否為暫停狀態
- privatestaticfinalint UPDATE_TIME = 0x10;//更新播放事件的標記
- private DRMPlayerApp app;//取出全域性物件 方便呼叫
- //歌詞
- private ViewPager viewPager;
- private LrcView lrcView;// 自定義歌詞檢視
- private ArrayList<View> views = new ArrayList<>();
- privatestaticfinalint UPDATE_LRC = 0x20;//更新播放事件的標記
- ILrcView mLrcView;
- publicfinalstatic String TAG = "PlayActivity";
- private MediaPlayer mPlayer;
- private ViewPagerAdapter adapter;
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_music_play);
- //取出全域性物件 方便呼叫
- app = (DRMPlayerApp) getApplication();
- //初始化介面資訊
- //textView2_title = (TextView) findViewById(R.id.textView2_title);//歌名
- //imageView1_ablum = (ImageView) findViewById(R.id.imageView1_ablum);//專輯封面圖片
- seekBar1 = (SeekBar) findViewById(R.id.seekBar1);//進度條
- textView1_start_time = (TextView) findViewById(R.id.textView1_start_time);//開始時間
- textView1_end_time = (TextView) findViewById(R.id.textView1_end_time);//結束時間
- imageView1_play_mode = (ImageView) findViewById(R.id.imageView1_play_mode);//選單
- imageView3_previous = (ImageView) findViewById(R.id.imageView3_previous);//上一首
- imageView2_play_pause = (ImageView) findViewById(R.id.imageView2_play_pause);//播放暫停
- imageView1_next = (ImageView) findViewById(R.id.imageView1_next);//下一首
- imageView1_favorite = (ImageView) findViewById(R.id.imageView1_favorite);//收藏按鈕
- lrcView = (LrcView) findViewById(R.id.lrcView);//自定義歌詞檢視
- //註冊按鈕點選監聽事件
- imageView1_play_mode.setOnClickListener(this);
- imageView2_play_pause.setOnClickListener(this);
- imageView3_previous.setOnClickListener(this);
-
imageView1_next.setOnClickListener(this
相關推薦
安卓音樂播放器歌詞滾動顯示
——— 歌德 本文系轉載,出處已經標明,以前寫播放器苦於音樂歌詞的顯示問題,當時解決的方法是去github找開源控制元件,無奈是別人的輪子,尺寸大小不對,只好湊活著用了,無聊逛了下csdn,發現有這篇文章,果斷收藏。以後歌詞顯示就直接自己造輪子用了~
安卓MP3播放器開發實例(3)之進度條和歌詞更新的實現
tac run detail datetime style mem poll() arc call 上一次談了音樂播放的實現,這次說下最復雜的進度條和歌詞更新。因為須要在播放的Activity和播放的Service間進行交互,所以就涉及了Activi
實現音樂播放器歌詞顯示效果
這兩天有個任務,說是要寫一個QQ音樂播放器歌詞的那種效果,畢竟剛學自定義View,沒有什麼思路,然後就Google.寫了一個歌詞效果,效果圖在後面,下面是我整理的程式碼。 首先實現這種效果有兩種方式 1.自定義View裡過載onDraw方法,自己繪製歌詞 2
Android--MediaPlayer音樂播放器歌詞隨時間高亮顯示
package com.mrzhu.hightlight; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os
安卓多媒體播放器的開發
lis list 媒體 ongl .com ava aid 多媒體 http JaVa%E5%8F%8D%E5%B0%84%E6%9C%BA%E5%88%B6%E5%AE%9E%E7%8E%B0%E5%8F%8A%E5%8E%9F%E7%90%86 http://musi
安卓視訊播放器——ijkPlayer(Bilibili開源)
作為一個B站(Bilibili)使用者,特別喜歡B站的播放器 湊巧,發現了b站的github的地址。。嘿嘿。。B站github地址f 發現了ijkplayer播放器,支援android 和ios 我們用AndroidStudio新建project名字是bilibili_ijkplay
安卓視訊播放器
磨洋工磨了好久,終於決定開始寫視訊播放器了,嗯,相簿播放器那裡,就是典型的舊坑未填,又挖新坑,233.再辭給自己立一個flag,一個月之後就要完成基本上的功能,比如基本的顯示,自動播放了,上一個下一個,暫停開始,拖拉,視訊列表。嗯,其他的慢慢來,總是要有個目標的,都沒人管
android 音樂播放器-------歌詞同步 lrc
lrc格式 : [al:這首歌所在的唱片集 ] [ar:歌詞作者 ] [by:本LRC檔案的建立者 ] [offset:+/- 以毫秒為單位整體時間戳調整,+增加,-減小 ] [re:建立此LRC檔案的播放器或編輯器 ] [ti:歌詞(歌曲)的標題 ] [ve:程式的版本 ]
用Vue來實現音樂播放器(三十八):歌詞滾動列表的問題
vue 三十八 pla -s toggle 情況 TP 解決辦法 暫停 1、頻繁切換歌曲時,歌詞會跳來跳去 原因: // 歌詞跳躍是因為內部有一個currentLyric對像內部有一些功能來完成歌詞的跳躍 //每個currentLyric能實現歌曲的播放跳到相應的位置 是
安卓仿網易雲介面的本地音樂播放器的實現
前言:讀研究生之前,老闆讓學IOS,老老實實看了一個學期的IOS(在這裡強烈安利一下騰訊課堂的小碼哥IOS視訊,基本剛開始只需要10塊買第一部,後面的就可以用可視幣來兌換了,質量還不錯,能學到很多東西,看三部基本IOS就能入門了),結果開學提前兩個月被叫去幹活,一開會,說IO
android程式設計例項-音樂播放器之歌詞顯示
今天分享一個歌詞顯示的專案,首先讓我們來看看一般歌詞是什麼樣的格式,就拿神曲《小蘋果》來說的,請看歌詞: [00:00.91]小蘋果 [00:01.75]作詞:王太利 作曲:王太利 [00:02.47]演唱:筷子兄弟 [00:03.32] [00:17.4
C#_音樂播放器_用ListBox顯示歌詞
在用ListBox顯示歌詞的時候,可以顯示多行,同時可以控制每一行顯示的樣式等等。控制顯示樣式是在它的DrawItem事件中來控制的。首先要先將ListBox的DrawMode屬性設定為OwnerDrawVariable或OwnerDrawFixed。ListBox有
原生js實現音樂播放器功能,可以實時顯示歌詞並且高亮當前句
最近在做專案,總結一下學到的知識, 首先就是一個簡單的音樂播放器。可以顯示歌詞,並且突出顯示當前播放的這一句。 但是歌詞必須是要轉碼成utf-8的,不然是亂碼,後面提供我淘到的轉碼工具,非常簡單,把
【安卓例項】3音樂播放器簡單版
package com.terry; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.media.MediaPla
Android 音樂播放器實現歌詞顯示
LrcHandle.java: package com.example.welcome; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import
關於音樂播放器中歌詞同步顯示的實現
做專案,用到顯示歌詞,現在一般聽歌MP3是最普遍的,歌詞檔案就是對應的lrc檔案,有的MP3檔案包含歌詞,但說實話還真沒碰到,我就是在播放MP3檔案時收索對應的lrc檔案,然後把歌詞讀出來,分離處時間標籤和歌詞,根據時間標籤來顯示歌詞,我用到的directshow介面播放的音
用Vue來實現音樂播放器(十六):滾動列表的實現
com 作用 efault nor 大小 -s stylus BE ack 滾動列表是一個基礎組件 他是基於scroll組件實現的 在base文件夾下面創建一個list-view文件夾 裏面有list-view.vue組件 <template>
安卓MediaPlayer播放asset檔案下的音樂檔案
第一種方式,通過一個物件去管理 public class PlayRam { private MediaPlayer mediaPlayer; public MediaPlayer getMediaPlayer() { return mediaPlayer;
Lily_music 網頁音樂播放器 -可搜尋(附歌詞聯動播放效果解說)
部落格地址:https://ainyi.com/#/59 寫在前面 這是我今年(2018)年初的小專案,當時也是手賤,不想用別的播放器,想著做一個自己的網頁播放器,有個歌曲列表、可關鍵詞搜尋、歌詞滾動播放的效果,於是乎,就做了這一個 Lily_music 當時的感慨 有好幾天沒有發表
【達內課程】音樂播放器4.0(圖片顯示)
ListView中非同步批量載入圖片業務 使用單執行緒輪循任務佇列的機制完成該業務 效果圖 MusicAdapter import android.content.Context; import android.graphics.Bitmap; import andro