【day1001_MoviePlayer】:视频播放

需要导入MediaPlayer.framework

- (void)viewDidLoad

{

    [super viewDidLoad];

    NSURL *url = [NSURL fileURLWithPath:@"/Users/tarena/yz/李明杰/OC视频/ARC/28-ARC04-循环引用.mp4"];

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

    self.moviePlayer.view.frame = CGRectMake(, , , );

//    [self.moviePlayer setControlStyle:MPMovieControlStyleNone]; // 隐藏视频操作

    [self.moviePlayer play];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playFinishedAction) name:MPMoviePlayerPlaybackDidFinishNotification object:Nil];

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

}

-(void)playFinishedAction{

    NSLog(@"播放完成");

}

- (IBAction)clicked:(UIButton *)sender {

//    [self.moviePlayer pause];// 暂停

    // 准备播放 把数据加载到内容

//    [self.moviePlayer prepareToPlay];

    UIImage *image = [self.moviePlayer thumbnailImageAtTime:self.moviePlayer.currentPlaybackTime timeOption:MPMovieTimeOptionExact];

    self.imageView.image = image;

}

【day1002_netWork】:tcpSocket

要导入一个类AsyncSocket,在ARC模式下需要将该类的.m文件上附加-fno-objc-arc(不使用arc模式)

- (void)viewDidLoad

{

    [super viewDidLoad];

    self.fileData = [NSMutableData data];

    // 创建服务端对象

    self.socketServer = [[AsyncSocket alloc] initWithDelegate:self];

    // 设置端口号

    [self.socketServer acceptOnPort: error:Nil];

}

// 接收新的服务端 接收到客户端发送的socket 相当于是客户端和服务端之间的通道

-(void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket{

    NSLog(@"接收到客户端发送的连接");

    self.socketNew = newSocket;

}

// 连接到客户端

-(void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{

    NSLog(@"连接到客户端:%@",host);

    [self.socketNew readDataWithTimeout:- tag:]; // 读取数据

}

// 接收到客户端数据  注意:当文件大时,此方法只会调用一次读取一次数据,不会自动调用

-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{

    self.fileSize += data.length;

    [self.fileData appendData:data];

    NSLog(@"接收到数据长度:%d,%d",data.length,self.fileSize);

    if (self.fileData.length == ) {

        [self.fileData writeToFile:@"/Users/tarena/yz/第三阶段(高级UI)/day10/a.mp3" atomically:YES];

    }

    [self.socketNew readDataWithTimeout:- tag:];

}

// 断开连接

-(void)onSocketDidDisconnect:(AsyncSocket *)sock{

}

// 客户端

- (IBAction)buttonAction:(UIButton *)sender {

    // 创建客户端

    self.socketClient = [[AsyncSocket alloc] initWithDelegate:self];

    // 发送连接

    // 连接服务端

    [self.socketClient connectToHost:@"localhost" onPort: error:Nil];

    NSLog(@"发送连接");

    // 发送数据

    NSData *data = [NSData dataWithContentsOfFile:@"/Users/tarena/yz/第三阶段(高级UI)/day10/musics/泡沫.mp3"];

    [self.socketClient writeData:data withTimeout:- tag:];

}

-(void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag{

    NSLog(@"发送完成");

}

属性不能以new开头

高级UIKit-08(TCPSocket)的更多相关文章

  1. Linux高级编程--08.线程概述

    线程 有的时候,我们需要在一个基础中同时运行多个控制流程.例如:一个图形界面的下载软件,在处理下载任务的同时,还必须响应界面的对任务的停止,删除等控制操作.这个时候就需要用到线程来实现并发操作. 和信 ...

  2. KVM虚拟机高级设置——08 管理远程虚拟机

    在搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具介绍了KVM图形化管理工具,这款工具除了可以管理本地KVM虚拟外,还可以管理远程KVM虚拟机. 输入113机器密码 输入yes ...

  3. Java入门 - 高级教程 - 08.Applet

    原文地址:http://www.work100.net/training/java-applet.html 更多教程:光束云 - 免费课程 Applet 序号 文内章节 视频 1 概述 2 Apple ...

  4. 即时聊天 / XMPP

    MQTT是第二个即时聊天协议(了解) 5.即时通讯 即时通讯网上有第三方的解决方案,比如环信,融云等.我们是自己搭的xmpp服务器,服务器使用的tigase,之前写过相关的博客,自己去年也做了对应的w ...

  5. Swift - 给表格添加编辑功能(删除,插入)

    1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...

  6. Swift - 给表格的单元格UITableViewCell添加图片,详细文本标签

    表格UITableView中,每一单元格都是一个UITableViewCell.其支持简单的自定义,比如在单元格的内部,添加图片和详细文本标签. 注意UITableViewCell的style: (1 ...

  7. Swift - 使用表格组件(UITableView)实现分组列表

    1,样例说明: (1)列表以分组的形式展示 (2)同时还自定义分区的头部和尾部 (3)点击列表项会弹出消息框显示该项信息. 2,效果图:       3,代码如下: 1 2 3 4 5 6 7 8 9 ...

  8. TensorFlow2教程(目录)

    第一篇 基本操作 01 Tensor数据类型 02 创建Tensor 03 Tensor索引和切片 04 维度变换 05 Broadcasting 06 数学运算 07 前向传播(张量)- 实战 第二 ...

  9. 高级UIKit-09(TCPSocket发送文件、上传和下载)

    [day1101_SocketSendFile]:发送文件到服务端 发送文件需要在该文件上拼接消息头,比如类型,文件名,文件大小 // 服务端 - (void)viewDidLoad { [super ...

随机推荐

  1. Knockout快速扫盲

    1.Knockout.js是什么?   Knockout是一款很优秀的js库,它可以快速让你使用一个干净整洁的底层数据模型,即可创建一个富文本且具有良好显示和编辑功能的用户界面.任何时候你的ui需要自 ...

  2. 重启IIS报错:IIS 服务或万维网发布服务,或者依赖这 服务可能在启动期间发生错误或者已禁用

    参考文章: http://www.cnblogs.com/zengen/archive/2010/10/29/1864569.html 开启如下服务: Net.Msmq Listener Adapte ...

  3. Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)下

    前面说了一些在OpenCV在VS2013下的配置的过程,下面说一下其中的个别的知识点,了解一下这样配置的一点点更细节的过程.其实配置项目属性的时候,有两种方式: 一.通过项目属性管理器配置项目属性表 ...

  4. Oracle 创建用户并且授权

    以sysdba登陆 创建用户:CREATE USER username IDENTIFIED BY password; 授予(角色)权限:GRANT CONNECT,RESOURCE TO usern ...

  5. 一个分组查询 每组前 10 的sql 语句

    USE tmpgo CREATE TABLE Employee( ID int identity(1,1), EmpName varchar(20), EmpSalary varchar(10), E ...

  6. Ecmall系统自带的分页功能使用

    在控制器如果没有定义相关模型,直接使用sql语句的话,直接使用如下语句. 即: public $db; $this->db = &db(); //然后开始使用分页类 $sql='sele ...

  7. 第2章 Python基础语法--Hello python

    第2章 基础语法 2.1 基本介绍 2.1.1 Hello python 每个语言的开始都是从”HelloWorld”开始的,我们也不例外.打开已经安装好的Python编译环境,至于Python如何安 ...

  8. openrisc 之 Wishbone总线学习笔记——接口信号定义

    这部分内容就是copy下来的,网上到处都有.先看看接口啥样子,在详细说明 接口定义copy http://blog.csdn.net/ce123/article/details/6929897.百度文 ...

  9. 爬虫框架Scrapy

    前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识, 用来解决简单的贴吧下载,绩点运算自然不在话下. 不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点. 于是乎,爬虫 ...

  10. python异常处理URLError,HTTPError,Wrapping,

    们在使用爬虫来抓取网页内容的时候,HTTP异常是必须要注意的一项,所以本文,我们来详细探寻一下HTTP异常处理的相关内容,通过一些具体的实例来分析一下,非常的简单,但是却很实用.   先来说一说HTT ...