package com.genius.demo;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import com.genius.adapter.GridViewAdapter;
import com.genius.adapter.ListViewAdapter;
import com.genius.interfaces.IOnServiceConnectComplete;
import com.genius.interfaces.IOnSliderHandleViewClickListener;
import com.genius.musicplay.MusicData;
import com.genius.musicplay.MusicPlayMode;
import com.genius.musicplay.MusicPlayState;
import com.genius.service.ServiceManager;
import com.genius.widget.GalleryFlow;
import com.genius.widget.ImageAdapter;
import com.genius.widget.MySlidingDrawer;
import android.R.bool;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.SearchManager.OnDismissListener;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.LevelListDrawable;
import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.SeekBar;
import android.widget.SlidingDrawer;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.SlidingDrawer.OnDrawerCloseListener;
import android.widget.SlidingDrawer.OnDrawerOpenListener;
public class MusicPlayActivity extends Activity implements IOnServiceConnectComplete{
/** Called when the activity is first created. */
private final static String TAG = "MusicPlayActivity";
private final String BROCAST_NAME = "com.genius.musicplay.brocast";
private final static int REFRESH_PROGRESS_EVENT = 0x100;
private final static int ABOUT_DIALOG_ID = 1;
private Handler mHandler;
private UIManager mUIManager;
private ServiceManager mServiceManager;
private MusicTimer mMusicTimer;
private MusicPlayStateBrocast mPlayStateBrocast;
private SDStateBrocast mSDStateBrocast;
private List<MusicData> m_MusicFileList;
private ListViewAdapter mListViewAdapter;
private boolean mIsSdExist = false;
private boolean mIsHaveData = false;
private int mCurMusicTotalTime = 0;
private int mCurPlayMode = MusicPlayMode.MPM_LIST_LOOP_PLAY;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
long time1 = System.currentTimeMillis();
init();
long time2 = System.currentTimeMillis();
Log.i(TAG, "initView cost = " + (time2 - time1));
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mMusicTimer.stopTimer();
unregisterReceiver(mPlayStateBrocast);
unregisterReceiver(mSDStateBrocast);
mServiceManager.disconnectService();
}
public void onResume()
{
super.onResume();
Log.i(TAG, "onResume");
}
public void onStart()
{
super.onStart();
Log.i(TAG, "onStart");
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id)
{
case ABOUT_DIALOG_ID:
{
Dialog aboutDialog = new AlertDialog.Builder(MusicPlayActivity.this)
.setIcon(R.drawable.about_dialog_icon)
.setTitle(R.string.about_title_name)
.setMessage(R.string.about_content)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked OK so do some stuff */
}
}).create();
return aboutDialog;
}
default:
break;
}
return null;
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
mUIManager.Back();
}
public void init()
{
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch(msg.what)
{
case REFRESH_PROGRESS_EVENT:
mUIManager.setPlayInfo(mServiceManager.getCurPosition(), mCurMusicTotalTime, null);
break;
default:
break;
}
}
};
mUIManager = new UIManager();
mServiceManager = new ServiceManager(this);
mServiceManager.setOnServiceConnectComplete(this);
mServiceManager.connectService();
mMusicTimer = new MusicTimer(mHandler, REFRESH_PROGRESS_EVENT);
m_MusicFileList = new ArrayList<MusicData>();
mListViewAdapter = new ListViewAdapter(this, m_MusicFileList);
mUIManager.mListView.setAdapter(mListViewAdapter);
mPlayStateBrocast = new MusicPlayStateBrocast();
IntentFilter intentFilter1 = new IntentFilter(BROCAST_NAME);
registerReceiver(mPlayStateBrocast, intentFilter1);
mSDStateBrocast = new SDStateBrocast();
IntentFilter intentFilter2 = new IntentFilter();
intentFilter2.addAction(Intent.ACTION_MEDIA_MOUNTED);
intentFilter2.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
intentFilter2.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentFilter2.addAction(Intent.ACTION_MEDIA_EJECT);
intentFilter2.addDataScheme("file");
registerReceiver(mSDStateBrocast, intentFilter2);
}
private List<MusicData> getMusicFileList()
{
List<MusicData> list = new ArrayList<MusicData>();
String[] projection = new String[]{MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ARTIST};
long time1 = System.currentTimeMillis();
Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI , projection, null, null, null);
if (cursor != null)
{
cursor.moveToFirst();
int colNameIndex = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int colTimeIndex = cursor.getColumnIndex(MediaStore.Audio.Media.DURATION);
int colPathIndex = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);
int colArtistIndex = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
int fileNum = cursor.getCount();
for(int counter = 0; counter < fileNum; counter++){
MusicData data = new MusicData();
data.mMusicName = cursor.getString(colNameIndex);
data.mMusicTime = cursor.getInt(colTimeIndex);
data.mMusicPath = cursor.getString(colPathIndex);
data.mMusicAritst = cursor.getString(colArtistIndex);
list.add(data);
cursor.moveToNext();
}
cursor.close();
}
long time2 = System.currentTimeMillis();
Log.i(TAG, "seach filelist cost = " + (time2 - time1));
return list;
}
public void showNoData()
{
Toast.makeText(this, "No Music Data...", Toast.LENGTH_SHORT).show();
}
public void rePlay()
{
if (mIsHaveData == false)
{
showNoData();
}else{
mServiceManager.rePlay();
}
}
public void play(int position)
{
if (mIsHaveDa
没有合适的资源?快使用搜索试试~ 我知道了~
小程序 源码仿多米音乐播放器项目(源码+截图).rar
共205个文件
png:101个
class:42个
xml:23个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 128 浏览量
2023-03-19
19:48:42
上传
评论
收藏 1.96MB RAR 举报
温馨提示
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
资源推荐
资源详情
资源评论
收起资源包目录
小程序 源码仿多米音乐播放器项目(源码+截图).rar (205个子文件)
MusicConnect.aidl 648B
MusicConnect.aidl 648B
MusicConnect.aidl 648B
MusicData.aidl 58B
MusicData.aidl 58B
MusicData.aidl 58B
resources.ap_ 299KB
MusicPlay.apk 331KB
jarlist.cache 120B
proguard.cfg 1KB
MusicPlayActivity.class 11KB
MusicPlayer.class 7KB
ServiceManager.class 6KB
MusicConnect$Stub$Proxy.class 6KB
MusicPlayActivity$UIManager$SliderDrawerManager.class 6KB
MusicPlayActivity$UIManager.class 6KB
ImageAdapter.class 5KB
MusicConnect$Stub.class 5KB
MusicPlayActivity$UIManager$PopMenuManager.class 4KB
ListViewAdapter.class 4KB
GalleryFlow.class 4KB
MusicPlayActivity$MusicPlayStateBrocast.class 3KB
MusicService$1.class 3KB
MySlidingDrawer.class 3KB
R$drawable.class 2KB
MusicPlayActivity$SDStateBrocast.class 2KB
MusicService.class 2KB
GridViewAdapter.class 2KB
R$id.class 2KB
ServiceManager$1.class 2KB
MusicData.class 2KB
MusicPlayActivity$UIManager$PopMenuManager$1.class 2KB
MusicData$1.class 2KB
MusicTimer.class 2KB
MusicService$SDStateBrocast.class 1KB
MenuItemData.class 1KB
MusicPlayActivity$2.class 1KB
MusicPlayActivity$UIManager$PopMenuManager$2.class 1KB
MusicTimer$MusicTimerTask.class 929B
MusicConnect.class 896B
MusicPlayActivity$1.class 881B
MusicPlayState.class 764B
R.class 600B
R$layout.class 584B
R$string.class 508B
MusicPlayMode.class 489B
R$array.class 398B
R$color.class 391B
BuildConfig.class 339B
R$attr.class 331B
IOnSliderHandleViewClickListener.class 214B
IOnServiceConnectComplete.class 194B
.classpath 475B
Thumbs.db 104KB
Thumbs.db 6KB
Thumbs.db 5KB
classes.dex 70KB
annotations-5bbb0a59cf663c535a64f12025aaf441.jar 943B
MusicPlayActivity.java 27KB
MusicConnect.java 14KB
MusicPlayer.java 8KB
ServiceManager.java 7KB
R.java 7KB
MusicService.java 5KB
GalleryFlow.java 4KB
ImageAdapter.java 4KB
MySlidingDrawer.java 3KB
ListViewAdapter.java 3KB
MusicData.java 2KB
GridViewAdapter.java 2KB
MusicTimer.java 1KB
MenuItemData.java 917B
MusicPlayState.java 833B
MusicPlayMode.java 326B
BuildConfig.java 157B
IOnSliderHandleViewClickListener.java 151B
IOnServiceConnectComplete.java 127B
background.jpg 138KB
javaapk.com_0000.png 163KB
javaapk.com_0001.png 163KB
javaapk.com_0003.png 162KB
javaapk.com_0002.png 142KB
javaapk.com_0004.png 140KB
javaapk.com_0005.png 91KB
ablum_deflaut.png 37KB
ablum_deflaut.png 37KB
logo1.png 18KB
icon.png 12KB
icon.png 12KB
handle_bar_f.png 10KB
handle_bar_f.png 10KB
prompt.png 6KB
prompt.png 6KB
menuitem_f.png 6KB
menuitem_f.png 6KB
modelayout_bg_f.png 4KB
modelayout_bg_f.png 4KB
voicelayout_left_bg_f.png 4KB
voicelayout_left_bg_f.png 4KB
handle_bar_normal.png 3KB
共 205 条
- 1
- 2
- 3
资源评论
荣华富贵8
- 粉丝: 150
- 资源: 7649
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功