高级UIKit-07(AVAudioPlayer)
【day09-1-AVAudioPlayer】:播放音乐案例
实现多媒体需要准备以下两点:
需要引入一个框架AVFoundation.framework
然后引入#import <AVFoundation/AVFoundation.h>
代码如下:
@interface MXViewController ()
@property(nonatomic,strong) AVAudioPlayer *player;
@end
@implementation MXViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// 此对象可以表示两种路径1.本地路径file2.网络路径url
NSURL *url = [NSURL fileURLWithPath:@".."];
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:Nil];
[self.player play];// 播放
// [self.player pause];// 暂停
// [self.player stop];
// self.player.currentTime;当前时间
// self.player.duration;总时间
}
arc只会release掉自己页面的对象
strong把原来的值释放掉 把新新传来的值retain赋值
assign,weak把传进来的值赋值给属性
拖拽图片到新的位置:
1.遍历某个文件夹下的图片加载进ScrollView里面
2.给ScrollView添加一个长按手势
3.当手势触发的时候获取用户点击的坐标 遍历页面中的所有的ImageView判断是否点击到了某一个 从而得到from
4.找到点击到的图片之后 创建一个一样的图片添加到self.view中
5.当坐标发生改变的时候让添加进来的图片移动
6.在移动的同时继续得到用户点击的坐标 判断坐标在哪一张图片上面 这时图片的位置就是to
7.判断如果from不等于to的话就把数组中from位置的对象取出来 从数组中删除掉 然后 insert到数组中的to的位置
8.把页面中的所有图片删除掉 根据新的数组重新添加
9.交换完图片之后立即让from=to 不然会一直交换位置
动画是在重新加载图片的时候添加的 设置一下图片的原始位置和新位置 用动画展现出来
高级UIKit-07(AVAudioPlayer)的更多相关文章
- Linux高级编程--07.进程间通信
每个进程各自有不同的用户地址空间,进程之间要交换数据必须通过在内核中开辟缓冲区,从而实现数据共享. 管道 管道是一种最基本的IPC机制,由pipe函数创建: int pipe(int filedes[ ...
- Java入门 - 高级教程 - 07.多线程
原文地址:http://www.work100.net/training/java-multi-threading.html 更多教程:光束云 - 免费课程 多线程 序号 文内章节 视频 1 概述 2 ...
- 即时聊天 / XMPP
MQTT是第二个即时聊天协议(了解) 5.即时通讯 即时通讯网上有第三方的解决方案,比如环信,融云等.我们是自己搭的xmpp服务器,服务器使用的tigase,之前写过相关的博客,自己去年也做了对应的w ...
- JAVA EE企业级开发四步走完全攻略 [转]
http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...
- ios 视频音乐播放
IOS开发小技巧(视频和音乐播放).IOS视频播放代码(添加MediaPlayer.framework和#import) -(void)playMovie:(NSString *)fileName{ ...
- Swift - 给表格添加编辑功能(删除,插入)
1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...
- Swift - 给表格的单元格UITableViewCell添加图片,详细文本标签
表格UITableView中,每一单元格都是一个UITableViewCell.其支持简单的自定义,比如在单元格的内部,添加图片和详细文本标签. 注意UITableViewCell的style: (1 ...
- Swift - 使用表格组件(UITableView)实现分组列表
1,样例说明: (1)列表以分组的形式展示 (2)同时还自定义分区的头部和尾部 (3)点击列表项会弹出消息框显示该项信息. 2,效果图: 3,代码如下: 1 2 3 4 5 6 7 8 9 ...
- C语言07指针高级
01内存四区 接口封装和设计思想引导 接口封装设计思想引导 Sckclient客户端api模型设计 第一套api函数 #ifndef _SCK_CLINT_H_ #define _SCK_CLINT_ ...
- 2021.07.02 P1383 高级打字机题解(可持久化平衡树)
2021.07.02 P1383 高级打字机题解(可持久化平衡树) 分析: 从可以不断撤销并且查询不算撤销这一骚操作可以肯定这是要咱建一棵可持久化的树(我也只会建可持久化的树,当然,还有可持久化并查集 ...
随机推荐
- asp.net个人笔记
1.进程外session一记 配置进程外session, 在webconfig中配置<sessionState timeout="60" mode="StateSe ...
- [置顶] 浅谈大型web系统架构
转载原文:http://blog.csdn.net/dinglang_2009/article/details/6863697 分类: 大规模Web 2.0架构 2011-10-11 18:27 12 ...
- 安卓入门学习之Hello,world!
第二章 Hello,world! 本文同时发表至简书,不为什么,用他的MarkDown在线编辑爽得要哭. 注意:本章节所使用的开发工具为Eclipse 以Android编程权威指南作为学习书物 第一节 ...
- Android——用户登陆及用户名和密码的保存
Android——用户登陆及用户名和密码的保存 在之前的学习过程中已经将Android学习完了,但是在后面将近一年的时间里都没有进行过Android开发,所以对Android的所有的知识点又有点忘 ...
- linux下面安装软件学习流程
先不要急着配置LNMP 我相信你的LINUX基础一定很差,先去学LINUX. 基础最重要. 凡事都要先从基础搞起. 再把gcc搞搞. gcc的相关参数很多,多了解一下. 想要编译安装,不对gcc有些了 ...
- PHP 判断数据类型
isset()://变量是否已经声明 empty()://变量是否为空 defined()://常量是否已经定义 define() array_key_exists(mixed key, array ...
- Python学习之一
运行Python的步骤 1 加载内存 2 词法分析 3 语法分析 4编译字节码=>机器码 5运行 11:03:49 2016-01-11
- 谓词--Predicate
去苹果的的技术官网搜索-Predicate就会找到相关的文档-Predicate Programming Guide 1,创建谓词时 %@是变量时不加单双引号,常量是加单引号,加双引号需要转义符号\ ...
- spring 事务 笔记3.1
Spring事务 以前的事务都是编程式事务,需要开启和关闭,然后程序写在这里面 spring,声明式事务 Spring事务隔离级别 DEFAULT 使用数据库默认隔离级别 READ_UNCOMMITT ...
- 用Xamarin 实现园友的 :Android浮动小球与开机自启动
原文:用Xamarin 实现园友的 :Android浮动小球与开机自启动 前两天看园子里有筒子写了个 Android浮动小球与开机自启动 , 感觉这种被 360 玩烂的功能原来是如此的简单啊... ...