CALayer的动画跟一个播放音乐的demo

自动布局

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>

@interface ViewController ()<AVAudioPlayerDelegate>

@property (weak, nonatomic) IBOutlet UIButton *buttonImg;

@end

@implementation ViewController

{

AVAudioPlayer *audioPlayer;

}

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma - buttonImg -

- (IBAction)buttonImg:(UIButton *)sender

{

NSLog(@"%@",sender.currentTitle);

NSURL *mp3URL = [[NSBundle mainBundle]URLForResource:@"111" withExtension:@"mp3"];

NSLog(@"%ld",[sender.currentTitle compare:@"12"]);

if([sender.currentTitle compare:@"12"])

{

mp3URL =  [[NSBundle mainBundle]URLForResource:@"画情透骨" withExtension:@"mp3"];

}

if(![sender.currentTitle compare:@"12"])

{

mp3URL =  [[NSBundle mainBundle]URLForResource:@"111" withExtension:@"mp3"];

}

audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:mp3URL error:nil];

audioPlayer.delegate = self;

[audioPlayer play];

[self scale:sender];

}

#pragma - scale -

- (void) scale:(UIButton *)sender

{

CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"transform"];

anim.values = [NSArray arrayWithObjects:[NSValue valueWithCATransform3D:sender.layer.transform],

[NSValue valueWithCATransform3D:CATransform3DScale(sender.layer.transform, 0.82, 0.82, 1)],

[NSValue valueWithCATransform3D:CATransform3DScale(sender.layer.transform, 1.5, 1.5, 1)], [NSValue valueWithCATransform3D:sender.layer.transform],nil];

anim.duration = 0.5;

anim.removedOnCompletion = YES;

[sender.layer addAnimation:anim forKey:nil];

}

@end

4个动画来自疯狂ios讲义里的  动画部分

时间: 2024-11-05 14:52:38

CALayer的动画跟一个播放音乐的demo的相关文章

UI小项目之拳皇动画的实现(抽取加载图片和播放音乐的方法)

实现思路 1.加载图片 2.播放音乐 实现思想 1.封装思想 抽取相同代码生成一个新的方法,通过传递参数调用该方法: 2.内存管理思想 不需要每次调用方法时都重新加载图片,for循环加载图片写在ViewdidLoad中 下列代码没有对运行过程中内存管理进行优化 其中加载图片有两种方法: 通过imageNmae加载有缓存 通过imageWithContentsOfFile加载无缓存 有无缓存的区别: 有缓存,使用时不需要重新加载 无缓存,使用时才加载 #import "ViewController

4个小时实现一个HTML5音乐播放器

技术点:ES6+Webpack+HTML5 Audio+Sass 这里,我们将一步步的学到如何从零去实现一个H5音乐播放器. 首先来看一下最终的实现效果:Demo链接 接下来就步入正题: 要做一个音乐播放器就要非常了解在Web中音频播放的方式,通常都采用HTML5的audio标签关于audio标签,它有大量的属性.方法和事件,在这里我就做一个大致的介绍. 属性:src:必需,音频来源:controls:常见,设置后显示浏览器默认的audio控制面板,不设置默认隐藏audio标签:autoplay

Android设备 cocos2dx 骨骼动画注册事件播放音效,退到后台再返回黑屏问题

最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.cocos2dx.lib下的 Cocos2dxRenderer.java 中添加native方法 public static native void setIsPause(boolean isPause); 2.在Cocos2dxRenderer.java对应的Java_org_cocos2dx_li

[iOS Animation]-CALayer 显示动画

显式动画 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念.隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动画类型.在这一章中,我们将要研究一下显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动. 属性动画 首先我们来探讨一下属性动画.属性动画作用于图层的某个单一属性,并指定了它的一个目标值,或者一连串将要做动画的值.属性动画分为两种:基础和关键帧. 基础动画 动画

在Linux终端命令行下播放音乐的命令(Ubuntu)

现在的 Linux 桌面已经发展的很好了,在桌面下播放音乐操作起来也很简单.那么我们还记得在桌面不是那么好的时候我们是怎么播放音乐的么?哎,我是想不起来了,实在是太难了. 不过现在我们可以先安装一个小软件,然后通过命令行来使用这个软件播放音乐,感觉还是很不错滴. 这个软件的名字叫:SOX,支持很多格式的音频文件,如 WAV,MP3,MPG,OGG,FLAC 等等.满足我们日常使用是足够足够的了. 好了,首先,第一步我们需要把它安装到我们的系统里. 1.打开一个终端(Ctrl+Alt+T),然后输

iOS:CALayer核心动画层

CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView,而是CALayer CALayer是核心动画的基础,可以做圆角.阴影.边框等效果 每个UIView内部都有一个Layer的属性 在实现核心动画时,本质上是将CALayer中的内容转换成位图,从而便于图形硬件的操纵 UIView的CALayer基本演练: 演练设置UIView中的CALayer属性 –

C#播放音乐,调用程序

一:C# 播放音乐 string sound = Application.StartupPath + "/sound/msg.wav"; //Application.StartupPath:程序exe所在的位置,也可以直接写一个音乐的路径 SoundPlayer player = new SoundPlayer(sound); player.Load(); //把声音加载到内存 //player.PlayLooping();//播放 player.Play(); 二:C# 调用exe

关于Windows 8使用WMP播放音乐时WUDFHost跑CPU和硬盘的问题解决

Windows 8使用Windows Media Player播放音乐的时候,其实有一个这样的情况,WMP和某个什么名字看起来很屌的进程跑CPU很高,这个跑很高视你插入的SD卡内的文件数或者移动硬盘的文件数来定,如果文件很多,这个跑起来可以把系统都快卡死. 就像下面这样: 原因: WMP命令WPD系统服务去扫描外部移动存储,它用于更新媒体库. 系统服务就去访问那个移动设备,不断的扫描遍历移动设备的文件,所以IO和CPU使用很高,导致系统卡,读取访问缓慢. 解决: 打开服务,找到Portable

手机影音第十五天,利用service实现后台播放音乐,在通知栏显示当前音乐信息等

代码已经托管到码云上,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 先来一张目前的音乐播放器的效果图,当播放时,手机的状态通知栏也会有音乐信息显示. 这里可以看到有歌名.演唱者,还有歌曲的总时间,当前播放时间,当前播放进度,音乐暂停.下一首,上一首,音乐循环模式(单曲循环,顺序播放.循环播放)功能的实现.下一步就是把中间空白的部分填充歌词,然后做成根据进度显示歌词. 由于这次的内容有点多,是写了一天半的代码,讲的没那么细,