07-IOSCore - CoreData补充、音频视频
xml被plist取代了 数据库被coredata取代了
一、Core Data 高级补充
1. Core Data 本质是什么?操作数据库的数据
ORM
Object Relationship Mapping
对象关系映射解决的问题是->对象 和 数据库之间的关系
数据库: Database
专门用于存储、查询、增删改数据的地方
从类型上分:
关系型(最广泛)
字典型
关系型数据库:
用表去表达一个类型的数据,一个表里有很多条数据,每条数据的格式是一样的
CREATE TABLE Message {
boolean fromMe
INT type
VARCHAR(30) content
DATETIME time
}
SQL
结构化查询语言
用于查询
SELECT * from Message
where fromMe = true
ordered by time
SQL(字符串)
-----------> Database
字符串<-----------
数据库本身应该是和操作它的编程语言不相关
MySQL 很简单很方便 - java / php
SQLite 专门针对移动设备
SQL server 微软出的 C C++ C# VB
ORACLE 大型数据库
Sliverlight -> Flash
WPF -> Flex
-> MXML
Window
NavigationWindow
Line
2. 版本
当你修改coredata的数据模型xcodedatam
出现新版本的数据结构
TRMessage
type fromMe content
type fromMe content createdTime readTime
Core Data Migration
帮助你比较两个数据模型的区别
手机已经安装并且运行的数据模型 和
新版本程序带过来的新的数据模型
3. 删除
单实体 删除很简单
多实体 删除很变态
relationship中deleteRule属性解析:
Nullify 置空 删除群的时候 会删除掉 从群指向人的指针 那么 人指向群的引用置空
Cascade 如果删除掉文件夹那么文件夹里的所有东西也就不再了。也相当于 级联删除 在删除板块 会删除掉版块->帖子 帖子也删了
Deny 删除父版块时 如果发现有子版块 则删除不成功
4. 深化Context
Managed Object Context 跟查询相关的 栅栏
Persistent Store Coordinator
Persistent Object Store 跟存储相关的 圈
二、 音频
导入AVFoundation框架
Audio & Video Foundation
创建AVAudioPlayer 音频播放器
常用属性:
play 播放
pause 暂停
valume 音量
currentTime 当前时间
duration 歌曲总时间
TMusic
1. 点击播放能播放
滑动进度条能更改歌曲播放进度
滑动音量条能修改歌曲音量
2. 支持封面
获取封面代码:
//元数据 Metadata
NSURL * fileURL = [NSURL fileURLWithPath:path];
AVURLAsset * mp3Asset = [AVURLAssetURLAssetWithURL:fileURL
options:nil];
for (NSString * format in [mp3Asset availableMetadataFormats]){
for (AVMetadataItem * item in
[mp3Asset metadataForFormat:format]){
NSString * key = item.commonKey;
id map = item.value;
if ([key isEqualToString:@"artwork"]) {
NSData * data = [map objectForKey:@"data"];
self.imageView.image = [UIImage imageWithData:data];
} else {
NSLog(@"\n%@:%@", key, item.stringValue);
}
}
}
点击上下切 能换歌 使用currentTime
歌曲音乐的路径是从TMusic对象中的path/filename
属性中拼凑字符串获取的
播放当前歌曲结束后,能够自动跳转到下一首歌播放,这里使用到代理中的一个方法:
遵守协议 AVAudioPlayerDelegate
self.player.delegate = self;
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"播放完成");
}
如果自动跳转的时候,当前页面是播放列表页面/当前的组页面
你的小绿条(正在播放的提示)需要变换位置
3. 视频播放
导入MediaPlayer.framework框架
- (IBAction)tap:(id)sender {
NSURL *url = [[NSBundlemainBundle] URLForResource:@"product-design-animation-cn-20130712_848x480"withExtension:@"mp4"];
self.player = [[MPMoviePlayerControlleralloc] initWithContentURL:url];
self.player.view.frame = self.view.bounds;
[self.viewaddSubview:self.player.view];
[self.playerplay];
self.player.fullscreen = YES;// 全屏
// MPMoviePlayerWillExitFullscreenNotification : 退出全屏前
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(close:) name:MPMoviePlayerWillExitFullscreenNotificationobject:self.player];
}
-(void)close:(id)sender{
[self.player.viewremoveFromSuperview];
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:MPMoviePlayerWillExitFullscreenNotificationobject:self.player];
}
单词、
Migration 迁移 Mai3 Ge. Rui1 Shen.
07-IOSCore - CoreData补充、音频视频的更多相关文章
- Internet上的音频/视频概述
Internet上的音频/视频概述 计算机网络最初是为传送数据信息设计的.因特网 IP 层提供的"尽最大努力交付"服务,以及每一个分组独立交付的策略,对传送数据信息也是很合适的. ...
- iOS 直播-获取音频(视频)数据
iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyri ...
- iOS 微信 音频 视频自动播放
iOS 微信 音频 视频自动播放 http://www.w3ctech.com/topic/1165
- 【转】android如何浏览并选择图片 音频 视频
转自:http://www.cnblogs.com/top5/archive/2012/03/06/2381986.html 这几天 在学习并开发android系统的图片浏览 音频 视频 的浏览 ...
- HTML5 音频视频
HTML5 视频和音频的 DOM 参考手册 HTML5 DOM 为 <audio> 和 <video> 元素提供了方法.属性和事件. 这些方法.属性和事件允许您使用 JavaS ...
- 第六十六节,htnl音频视频
htnl音频视频 学习要点: 1.音频和视频概述 2.video视频元素 3.audio音频元素 本章主要探讨HTML5中音频和视频元素,通过这两个原生的媒体元素向HTML页面 ...
- 前端笔记之HTML5&CSS3(上)新特性&音频视频&本地存储&自定义属性
一.HTML5简介 HTML 5 的第一份正式草案已于2008年1月22日公布.HTML5 仍处于完善之中.然而,大部分现代浏览器已经具备了某些 HTML5 支持. 2014年10月29日,万维网联盟 ...
- HTML5媒体(音频/视频)
摘要: 在HTML5出现之前,web媒体大部分通过Flash来实现.这种方式造成了文件大加载慢,影响网站性能,开发难度高,维护麻烦,不易扩展等.这就导致HTML5自己开始支持媒体功能.HTML5 DO ...
- 音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw
音频视频编程相关:GStreamer/ffmpeg/directshow/vfw linux和window下几种流行的音频视频编程框架作一个总结,防止自己迷惘,免于晕头转向. 一.GStreamer ...
- iOS 音频视频图像合成那点事
代码地址如下:http://www.demodashi.com/demo/13420.html 人而无信不知其可 前言 很久很久没有写点什么了,只因为最近事情太多了,这几天终于闲下来了,趁此机会,记录 ...
随机推荐
- JavaScript 高级程序设计(第3版)笔记——chapter6:面向对象的程序设计
一.创建对象 工厂模式.使用简单的函数创建对象,为对象添加属性和方法,然后返回对象.[问题:没有解决对象识别问题] 1 function createPerson(name, age) { 2 var ...
- 关闭Outlook的时候使之最小化
Outlook很搓的一点就是只有按‘最小化’按钮的时候才会最小化到托盘,而按‘关闭’按钮Outlook直接被关闭退出.然后经常发现没邮件,结果是因为客户端关掉了. 下面通过插件方式实现关闭后最小化到托 ...
- [译]SSIS 通过环境变量配置数据源连接参数
场景 希望在包执行的时候可以随意选择参数,这时候我们可以用环境变量 . 另外所有包都可以用环境变量,有大量包的时候就比较方便. Step 1: 创建SSIS包 在Data Flow Task里面创建 ...
- BZOJ 3907: 网格( 组合数 + 高精度 )
(0,0)->(n,m)方案数为C(n,n+m), 然后减去不合法的方案. 作(n,m)关于y=x+1的对称点(m-1,n+1), 则(0,0)->(m-1,n+1)的任意一条路径都对应( ...
- Mac Yosemite下Android Studio环境问题集合
1. java not found 在mac Yosemite下,因jre升级到1.8,导致Android Studio无法启动.报错:"JAVA not found". 解决方法 ...
- django1.6.x(python3.3)使用pymysql连接mysql
1.安装 pymysql,地址:https://code.google.com/p/pymysql/ 2.安装django 然后执行 django-admin.py startproject mysi ...
- mysql-5.6.17-winx64 免安装 配置
[client] default_character_set=utf8 port=3306 [mysql] # 设置mysql客户端默认字符集 default_character_set=utf8 [ ...
- 转:requirejs2.0新特性介绍
就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升 ...
- HttpGet()和HttpPost()2
Get一般用于从服务器取数据,而且不改变原来的内容: Post一般用于向服务器传递数据,这需要改变服务器的内容. 从安全性上考虑,Get的安全性要稍微差点,因为它会把信息直接在地址栏显示出来.(但是A ...
- HDU p1294 Rooted Trees Problem 解题报告
http://www.cnblogs.com/keam37/p/3639294.html keam所有 转载请注明出处 Problem Description Give you two definit ...