博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android教程视频汇总
阅读量:4150 次
发布时间:2019-05-25

本文共 4894 字,大约阅读时间需要 16 分钟。

Android教程视频汇总:

(1)第一部:8天快速掌握Android视频。

(2)第二部老罗Android开发视频教程

(3)《Sundy's <Android深入浅出><Android高级应用><Android开发视频教程>》

(4)《Android开发从零开始》系列课程 

(5)李兴华教你Android开发实战

(6)Mars的Android开发视频教程

(7) 黑马程序员Android4.0视频教程

百度网盘下载地址:http://pan.baidu.com/share/link?shareid=3644771642&uk=2570445786

360云盘下载地址:http://yunpan.cn/QX4vB52TFnfbh

http://url.cn/IEYPzR  

 http://t3.qpic.cn/mblogpic/9088bb506dba8eb45c58/2000 http://t.qq.com/p/t/180962016212776

//MusicControl.java

package com.android.internal.policy.impl;

import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Locale;
import android.util.Log;
import com.android.internal.R;
import com.android.music.IMediaPlaybackService;    
import android.content.ComponentName;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.widget.*;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.provider.MediaStore;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MusicControl implements View.OnClickListener, ServiceConnection{
private View musicControlView;  
private RelativeLayout mMusicWidget;
private ImageButton prevSong;
private ImageButton pauseOrPlay;
private ImageButton nextSong; 
private TextView artistName;
private TextView songName;
private TextView trackName;
private TextView mDate;
private IMediaPlaybackService mService;  
private Context mContext;   
private String TAG = "MusicControl";
private final static int REFRESH = 0;
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case REFRESH:
try {
if(mService != null){  
artistName.setText(mService.getArtistName());
songName.setText(mService.getTrackName());
trackName.setText(mService.getTrackName());
if(mService.isPlaying()){
pauseOrPlay.setImageResource(R.drawable.iphone_stop);
}else{
pauseOrPlay.setImageResource(R.drawable.iphone_play);
} catch (RemoteException e) {
e.printStackTrace();
mHandler.removeMessages(REFRESH);
   
mHandler.sendEmptyMessageDelayed(REFRESH, 1000);
break;
default:
break;
}
}
};
public MusicControl(Context context,View musicView) {
Log.d(TAG, "MusicControl Contruct");
mContext = context;
musicControlView = musicView;  
mContext.bindService(new Intent("com.android.music.MediaPlaybackService"), this, Context.BIND_AUTO_CREATE);
 
prevSong = (ImageButton) musicControlView.findViewById(R.id.musicControlPrevious);
pauseOrPlay = (ImageButton) musicControlView.findViewById(R.id.musicControlPlayOrPause);
nextSong = (ImageButton) musicControlView.findViewById(R.id.musicControlNext); 
artistName = (TextView) musicControlView.findViewById(R.id.artist);
songName = (TextView) musicControlView.findViewById(R.id.song_name);
trackName = (TextView) musicControlView.findViewById(R.id.track_name);
prevSong.setOnClickListener(this);
pauseOrPlay.setOnClickListener(this);
nextSong.setOnClickListener(this); 
}
 
    public void startRefresh(){
   
mHandler.removeMessages(REFRESH);
   
mHandler.sendEmptyMessage(REFRESH);
    }
    public void stopRefresh(){
   
mHandler.removeMessages(REFRESH);
    }
public String getMusicTrack() throws RemoteException{
return mService.getTrackName();
    }
    
@Override
public void onClick(View v) { 
if(v == prevSong){
try {
Log.d(TAG, "MusicControl onClick mService:" + mService);
if(mService != null){
mService.prev();
} catch (RemoteException e) { 
e.printStackTrace();
}
}else if(v == pauseOrPlay){
try {
Log.d(TAG, "MusicControl onClick mService:" + mService);
if(mService != null){
if(mService.isPlaying()){
mService.pause();
pauseOrPlay.setImageResource(R.drawable.iphone_play);
}else{
mService.play();
pauseOrPlay.setImageResource(R.drawable.iphone_stop);
}
}
} catch (RemoteException e) { 
e.printStackTrace();
}
}else if(v == nextSong){
Log.d(TAG, "MusicControl onClick mService:" + mService);
try {
if(mService != null){
mService.next();
}
} catch (RemoteException e) { 
e.printStackTrace();
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) { 
Log.d(TAG, "MusicControl onServiceConnected");
mService = IMediaPlaybackService.Stub.asInterface(service);  
}
@Override
public void onServiceDisconnected(ComponentName arg0) { 
mService = null;
}
 
public boolean isMusicPlay(){
Log.d(TAG, "MusicControl isMusicPlay mService:" + mService);
boolean isPlay = false;
if(mService != null){
try {
isPlay = mService.isPlaying();
} catch (RemoteException e) {
Log.d(TAG, "MusicControl isMusicPlay RemoteException");
isPlay = false;
e.printStackTrace();
}
}
return isPlay;
}
}

转载地址:http://qavti.baihongyu.com/

你可能感兴趣的文章
看完老板就给加薪了!30岁以后搞Android已经没有前途?工作感悟
查看>>
绝了!这么香的技术还不快点学起来,大牛最佳总结
查看>>
网络优化软件apk,金九银十怎么从中小企业挤进一线大厂?我先收藏为敬
查看>>
美团安卓面试,这些年我所经历的所有面试,完整版开放下载
查看>>
美团安卓面试,阿里巴巴Android面试都问些什么?含小米、腾讯、阿里
查看>>
腾讯T2亲自讲解!阿里面试100%会问到的JVM,源码+原理+手写框架
查看>>
腾讯T3亲自讲解!字节大牛耗时八个月又一力作,大牛最佳总结
查看>>
你所不知道的Android原生开发的现状,手慢无
查看>>
做了3年Android还没看过OkHttp源码?小白也能看明白
查看>>
免费Android高级工程师学习资源,挥泪整理面经
查看>>
全世界都在问Android开发凉了吗?赶紧收藏!
查看>>
全世界都在问Android开发凉了吗?送大厂面经一份!
查看>>
全网最具深度的三次握手、四次挥手讲解,最全Android知识总结
查看>>
全网最具深度的三次握手、四次挥手讲解,看这一篇就够了!
查看>>
全网最具深度的三次握手、四次挥手讲解,知乎上转疯了!
查看>>
全靠这份Android知识点PDF大全,完整版开放下载
查看>>
关于Android程序员最近的状况,大厂内部资料
查看>>
从草根到百万年薪程序员的十年风雨之路,成功收获美团,小米安卓offer
查看>>
价值2000元的学习资源泄露,实战篇
查看>>
作为移动开发程序员,2021年Android开发者跳槽指南,实战篇
查看>>