首页 > 其他 > 详细

07-IOSCore - CoreData补充、音频视频

时间:2014-03-05 21:26:02      阅读:548      评论:0      收藏:0      [点我收藏+]

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    歌曲总时间

 

QQMusic

1.      点击播放能播放

         滑动进度条能更改歌曲播放进度

         滑动音量条能修改歌曲音量       

 

2.      支持封面

获取封面代码:

bubuko.com,布布扣
//元数据 Metadata

   

    NSURL * fileURL = [NSURL fileURLWithPath:path];

    AVURLAsset * mp3Asset = [AVURLAsset URLAssetWithURL: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);

            }

        }

    }
bubuko.com,布布扣

         点击上下切 能换歌 使用currentTime

         歌曲音乐的路径是从TMusic对象中的path/filename

         属性中拼凑字符串获取的

 

         播放当前歌曲结束后,能够自动跳转到下一首歌播放,这里使用到代理中的一个方法:

遵守协议 AVAudioPlayerDelegate

self.player.delegate = self;

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{   

    NSLog(@"播放完成");   

}

         如果自动跳转的时候,当前页面是播放列表页面/当前的组页面

         你的小绿条(正在播放的提示)需要变换位置    

 

         3.      视频播放

导入MediaPlayer.framework框架

bubuko.com,布布扣
- (IBAction)tap:(id)sender {

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"product-design-animation-cn-20130712_848x480" withExtension:@"mp4"];

    self.player = [[MPMoviePlayerController alloc] initWithContentURL:url];

    self.player.view.frame = self.view.bounds;

    [self.view addSubview:self.player.view];

    [self.player play];

    self.player.fullscreen = YES;// 全屏

   

    // MPMoviePlayerWillExitFullscreenNotification : 退出全屏前

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(close:) name:MPMoviePlayerWillExitFullscreenNotification object:self.player];

}

-(void)close:(id)sender{

    [self.player.view removeFromSuperview];

    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerWillExitFullscreenNotification object:self.player];

}
bubuko.com,布布扣

单词、      

         Migration        迁移                   Mai3 Ge. Rui1 Shen.

 

07-IOSCore - CoreData补充、音频视频,布布扣,bubuko.com

07-IOSCore - CoreData补充、音频视频

原文:http://www.cnblogs.com/yangmx/p/3583129.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!