简易仿QQ音乐播放界面(可以播放并且可以简单切歌)

由于代码太多,服务器不允许,所以就只能把代码分出一部分,另外一部分上传截图。

重要方法代码如下:(不是截图是代码)

#pragma mark - 收藏按钮点击事件

-(void)loveBtnClick

{

if (!isLove) {

[loveBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

isLove=YES;

/**

*成功收藏歌曲的背景控件label

*/

loveLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 41, self.view.bounds.size.width, 35)];

loveLabel.backgroundColor=[UIColor orangeColor];

/**

*UIView成功收藏动画

*/

[UIView animateWithDuration:1 animations:^{

loveLabel.frame=CGRectMake(0, 66, self.view.bounds.size.width, 35);

loveLabel.text=@"亲,歌曲收藏成功了哦^_^";

loveLabel.textAlignment=1;

loveLabel.font=[UIFont systemFontOfSize:17];

[imageView addSubview:loveLabel];

} completion:^(BOOL finished)

{

[self performSelector:@selector(labelHidden) withObject:nil afterDelay:2];

}];

}

else

{

[loveBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

isLove=NO;

/**

*取消收藏歌曲的背景控件label

*/

loveLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 41, self.view.bounds.size.width, 35)];

loveLabel.backgroundColor=[UIColor orangeColor];

/**

*UIView取消收藏动画

*/

[UIView animateWithDuration:1 animations:^{

loveLabel.frame=CGRectMake(0, 66, self.view.bounds.size.width, 35);

loveLabel.text=@"亲,你取消了收藏哦-_-";

loveLabel.textAlignment=1;

loveLabel.font=[UIFont systemFontOfSize:17];

[imageView addSubview:loveLabel];

} completion:^(BOOL finished)

{

[self performSelector:@selector(labelHidden) withObject:nil afterDelay:2];

}];

}

}

-(void)labelHidden

{

loveLabel.transform=CGAffineTransformIdentity;

loveLabel.hidden=YES;

}

#pragma mark - 播放按钮点击事件

-(void)playBtnPlay

{

if (isPlaying)

{

[playBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[playBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[player stop];

NSLog(@"已经暂停");

isPlaying=NO;

totalTimelabel.text=[NSString stringWithFormat:@"0%d:%d",(int)player.duration/60,(int)player.duration%60];

}

else

{

[player play];

NSLog(@"正在播放");

timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(time) userInfo:nil repeats:YES];

j=0;

totalTimelabel.text=[NSString stringWithFormat:@"0%d:%d",(int)player.duration/60,(int)player.duration%60];

timelabel.text=[NSString stringWithFormat:@"%.1f",player.currentTime];

[playBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

[playBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

isPlaying=YES;

}

}

#pragma mark - 下一首按钮点击事件

-(void)nextMusic

{

imageView.image=[UIImage imageNamed:@"wanglihong.jpg"];

titleLabel.text=@"浮夸";

playerLabel.text=@"陈奕迅";

if (isPlaying)

{

NSLog(@"---下一首-----");

[player stop];

NSURL* url=[[NSBundle mainBundle]URLForResource:@"浮夸.mp3" withExtension:nil];

player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

[player prepareToPlay];

isPlaying=NO;

[player play];

isPlaying=YES;

}

}

#pragma mark - 上一首按钮点击事件

-(void)preMusic

{

imageView.image=[UIImage imageNamed:@"gem.jpeg"];

titleLabel.text=@"多远都要在一起";

playerLabel.text=@"彭佳慧";

if (isPlaying)

{

NSLog(@"---上一首-----");

[player stop];

NSURL* url=[[NSBundle mainBundle]URLForResource:@"多远都要在一起.mp3" withExtension:nil];

player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

[player prepareToPlay];

isPlaying=NO;

[player play];

isPlaying=YES;

}

}

#pragma mark - 定时器方法

-(void)time

{

NSLog(@"------调用该方法------");

j++;

for (int i=0; i<slider.maximumValue+1; i++) {

totalTimelabel.text=[NSString stringWithFormat:@"0%d:%d",(int)player.duration/60,(int)player.duration%60];

if ((int)player.currentTime%60<10) {

timelabel.text=[NSString stringWithFormat:@"0%d:0%d",(int)player.currentTime/60,(int)player.currentTime%60];

}

else

{

timelabel.text=[NSString stringWithFormat:@"0%d:%d",(int)player.currentTime/60,(int)player.currentTime%60];

}

progressView.progress=player.currentTime/player.duration;

}

if (j==slider.maximumValue) {

NSLog(@"歌曲播放完成");

[timer invalidate];

isPlaying=NO;

[playBtn setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];

}

}

运行结果如下:

(呵呵,不好意思,最后两个字打错了,是消失)

时间: 2024-10-14 00:19:25

简易仿QQ音乐播放界面(可以播放并且可以简单切歌)的相关文章

轻仿QQ音乐之音频歌词播放、锁屏歌词-b

先上效果图 歌词播放界面 音乐播放界面 锁屏歌词界面 一. 项目概述 前面内容实在是太基础..只想看知识点的同学可以直接跳到第三部分的干货 项目播放的mp3文件及lrc文件均来自QQ音乐 本文主要主要讲解锁屏歌词的实现,音频.歌词的播放网上资源略多,因此不做重点讲解,项目也是采取最简单的MVC+storyboard方式 项目GitHub地址: https://github.com/PengfeiWang666/WPFMusicPlayer 音乐模型-->WPFMusic /** 图片 */ @p

基于jQuery仿QQ音乐播放器网页版代码

基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="m_player" id="divplayer" role="application" onselectstart="return false" style="left: 0px;"> <div class=&

Android UI之自定义——最简单的仿QQ音乐歌词颜色渐变

Android UI之自定义--最简单的仿QQ音乐歌词颜色渐变 记得刚开始做android的时候,就发现QQ音乐歌词颜色渐变的效果,就在网上搜索过,但是就是没有找到满意的.今天突然用QQ音乐听歌的时候,看到歌词颜色渐变,决定来分析看看,没想到实现原来如此简单.这篇只是将最简单的歌词颜色渐变功能,不包括歌词滚动等效果. 首先来看下QQ音乐歌词界面 实现步骤 从界面上可以看出,是通过不同颜色的文本叠加所形成的视觉效果.那么android文本一般使用TextView实现,那就来试试用TextView在

jQuery仿QQ音乐播放器

本文通过Html+CSS+jQuery开发仿QQ版的音乐播放器,是前端技术的综合应用,所用素材来源于网络,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点 在本例中用到的知识点如下,按jQuery和CSS进行区分: jQuery 是一个 JavaScript 库, 极大地简化了 JavaScript 编程,常见知识点如下: 通过标签获取jQuery对象:var $audio =$("audio"); 通过选择符获取jQuery对象并设置文本内容:$(".music_pr

wpf 仿QQ音乐歌词卡拉OK

最近用WPF做了个音乐播放器,读取歌词.歌词同步都已经实现了.卡拉OK逐字变色 也实现了,但是逐字变色时不能根据歌手唱的快慢来逐字显示.请问各位大神,这个如何解决,有何思路?(附上我做的界面) 感谢各位大神光顾和赐教!!!抱拳........

android 仿QQ气泡聊天界面

1.现在的QQ,微信等一些APP的聊天界面都是气泡聊天界面,左边是接收到的消息,右边是发送的消息, 这个效果其实就是一个ListView在加载它的Item的时候,分别用了不同的布局xml文件. 2.效果图(其中的聊天信息框是采用了.9.png的图片): 3.对中间聊天的的listView进行说明: 左边Item的xml文件效果如下: 右边Item的xml文件效果如下: 4.在加载ListView当中重写getView()方法,通过判断消息传入类型,来使item加载哪一个xml文件: 自定义ada

仿QQ锁屏界面效果

现在新版的QQ Android客户端有个新功能,就是在锁屏界面也可以接收消息,并且接收到的消息可以显示在锁屏界面,双击之后可以进入QQ,下面简单实现这个功能. 当然正式项目中的运用还是非常复杂的,这仅仅是一个简单的Demo,可以作为参考. 直接上代码: MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

仿QQ好友列表界面的实现

TableView有2种style:UITableViewStylePlain 和 UITableViewStyleGrouped. 但是QQ好友列表的tableView给人的感觉似乎是2个style效果都有,但是tableView不能实现2种效果同时存在. 其实只是用到了Plain这个style,只是在cell的个数显示上做了个处理(个人见解,希望可以帮到有需要的人.....) 当通讯录那一组的cell的组头视图中的button是普通状态下的时候,并不是不显示cell,而是显示一个没有任何内容

巧妙的Jq仿QQ游戏导航界面学习

先贴上源代码 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>仿腾讯游戏首页小幻灯片jquery插件</title> 6 7 <style> 8 img{border:0px;font-size:0;} 9 10 .banner{position:relative;width:960px;height:170px