手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

资料备份:IOS5内嵌字体列表

做网页的时候需要考虑在IOS上的显示效果,不能随便用字体,于是官网的这个页面就可以做参考了
http://support.apple.com/kb/HT4980?viewlocale=zh_CN&locale=zh_CN

受影响的产品

iPhone, iPad, iPod touch

系列名称 版本
Academy Engraved LET 7.0d1e1
American Typewriter 7.0d1e1
Apple Color Emoji 7.0d18e1
AppleGothic 7.0d5e1
Arial 5.01.2x 版
Arial Hebrew 6.0d2e1
Arial Rounded MT Bold 1.51x 版
Bangla Sangam MN 7.0d4e1
Baskerville 7.0d4e2
Bodoni 72 7.0d1e2
Bodoni 72 Oldstyle 7.0d1e2
Bodoni 72 Smallcaps 7.0d1e2
Bodoni Ornaments 7.0d2e1
Bradley Hand 7.0d3e1
Chalkboard SE 7.0d13e1
Chalkduster 7.0d6e1
Cochin 7.0d1e1
Copperplate 7.0d1e2
Courier 7.0d2e1
Courier New 5.00.2x 版
Devanagari Sangam MN 7.0d10e1
Didot 6.1d4e1
Euphemia UCAS 6.1d4e1
Futura 6.2d1e1
Geeza Pro 6.1d8e1
Georgia 5.00x-3 版
Gill Sans 6.1d9e1
Gujarati Sangam MN 7.0d2e1
Gurmukhi MN 7.0d2e1
Heiti SC 7.0d21e1
Heiti TC 7.0d21e1
Helvetica 8.0d9e1
Helvetica Neue 7.1d5e2
Hiragino Kaku Gothic ProN 8.10 版
Hiragino Mincho ProN 8.10 版
Hoefler Text 6.1d7e1
Kailasa 7.0d3e1
Kannada Sangam MN 7.0d3e1
Malayalam Sangam MN 7.0d3e1
Marion 7.1d3e2
Marker Felt 4.4d2e1
Noteworthy 7.0d15e1
Optima 6.1d4e1
Oriya Sangam MN 7.0d4e1
Palatino 7.0d4e4
Papyrus 6.1d10e2
Party LET 7.0d2e1
Sinhala Sangam MN 7.05e1
Snell Roundhand 7.0d6e3
Tamil Sangam MN 7.0d2e1
Telugu Sangam MN 7.0d2e1
Thonburi 10.7d8e1
Times New Roman 5.01.3x 版
Trebuchet MS 5.00x 版
Verdana 5.01x 版
Zapf Dingbats 6.1d3e1
Zapfino 6.1d5e1

Tags: ios5

资料备份:ios(苹果)设备直播流媒体 服务搭建

由于公司的规划,在未来的一段时间内可能会给ipad用户提供流媒体的播放服务,因此,在服务器上架设流媒体服务器就已经被我提上了日程。找了不少资料,发现这一篇还算是相对不错的。
原文地址是:http://www.aojie.biz/902
原文内容:

iOS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点费周折,不过找对了软件和方法就相对容易许多。收集了一下关于iOS设备上搭建直播流媒体服务器的一些解决方案,如下:

1、凤雨小城,HLS 简介,http://www.vexx.cn/blog/read.php?240

2、dancong , wowza服务器无法将RTMP的流播放到iOS上(已解决),http://www.cocoachina.com/bbs/read.php?tid-47849.html

HLS简介 – rainstown (小城秋雨)

HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。
在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。
在App Store中的视频相关的应用,基本都是应用的此种技术。
该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(m3u8)。支持的视频流编码为H.264,音频流编码为AAC。
m3u8文件示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,

http://192.168.1.36/vod/tt/tt-1.ts

#EXTINF:10,

http://192.168.1.36/vod/tt/tt-2.ts

#EXTINF:10,

http://192.168.1.36/vod/tt/tt-3.ts

#EXT-X-ENDLIST
可以在iOS或Mac OS上通过quicktime或safari(其实还是调用quicktime)来进行播放。
下面分点播和直播分别进行一下介绍。
点播:
苹果官方提供了Segmenter软件,参数如下:

segmenter <input MPEG-TS file> <segment duration in seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix>

示例:
segmenter youku.m2ts 10 tt/tt index.m3u8 http://192.168.1.36/vod/
注意:输入文件必须为MPEG2TS格式。对我们的mp4文件来说,必须先进行一次容器格式转换才能进行分割。分割命令:
ffmpeg -i youku.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb youku.m2ts
我们下一阶段要做的视频分割项目,针对iOS平台的播放,可以考虑采用此种方式。只是若如此做,存储成本会加倍.。
直播:
客户端软件推送H.264视频流和AAC音频流到服务器软件,服务器软件将接收到的流每缓存一定时间后包装为一个新的ts文件,然后更新m3u8文件.。 m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件 的时长,一般为2-3个ts文件的时长。
苹果没有官方的HLS直播服务器软件和客户端软件。其它第三方公司的产品有:
·  TVersity
·  Helix Universal Server
·  Wowza Media Server
·  VLC Media Player version 1.2
我采用Helix Universal Server和Helix Producer(客户端软件)进行了直播测试。
若要做针对iOS平台的直播,目前来看,只能采用此种方式。但在其它平台(除了iOS和Mac之外)上无法观看直播,也决定了此种直播方式的应用场景暂时具有相当的局限性,只能作为常规直播方式的一种补充。

wowza服务器无法将RTMP的流播放到iOS上(已解决)

我现在需要将本地Macbook的rtmp的视频流直播到iOS上,准备采用wowza作为服务器。

我按照这个教程用FlashMediaLiveEncoder 3.2 采集本机的iSight视频后,按视频H.264, Baseline 3.0, 音频 AAC为格式输出rtmp协议的流。

复制代码
  1. FMS URL里填rtmp://localhost:1935/live
  2. Stream里填mp4:myStream

我在本地按wowza官方的配置方法配完后,Mac OS X 网页上可以用jwplayer直接以:

复制代码
  1. var flashvars = {
  2. file:’myStream’,
  3. streamer:’rtmp://localhost/live/’
  4. };

这种方式播放rtmp流,说明wowza已经接收到rtmp流了。

问题是,用iOS访问“http://localhost:1935/live/myStream.sdp/playlist.m3u8”,结果iOS虽然出现播放界面,但是报错“File not found”,查看wowza控制台报错,说:

复制代码
  1. INFO stream create myStream.sdp -
  2. WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
  3. WARN server comment – HTTPStreamerAdapterCupertinoStreaming.getAppInstance: Stream not found [live/myStream.sdp/playlist.m3u8]: myStream.sdp
  4. INFO stream destroy myStream.sdp -

说明访问到了wowza,但是wowza无法将rtmp流转成myStream。

我看过了Apple官方的HTTP live stream的文档,说需要segmenter将视频流切分成多个ts的视频文件和m3u8的播放列表,我觉得这些都是wowza负责实现的。

请问如何配置wowza才能将rtmp流转成Apple HTTP live stream。

另外,虽然wowza要求SDP文件,但是我不知道怎么生成SDP文件,而且网上有人说不用SDP文件也可以。是因为这个SDP缺失导致的吗?如何生成SDP?

解决方案:
根本不用生成SDP。
原来是iOS上的访问地址被官方误导了,晕死,官网上的竟然是错的。URL里不需要写“.sdp”,应该是http://localhost:1935/live/myStream/playlist.m3u8就可以了。

---------
最后一句超有意思。。
官方的文档应该是这个:http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008332-CH1-DontLinkElementID_31

Tags: 流媒体, ios, fms

转:ios拷贝小议

纯记录,目前我还没有学到这里。
看到这样的文章,就先记录下来,以后不怕网址不在了。。。

1.copy vs mutableCopy

copy,对于不可变的对象,简单的指向其内存.对于可变对象,复制内存内容到新的内存中并把新的内存值赋值给左值.

mutableCopy,始终复制到新的内存中,以一个可变的类型赋值给左值.

大小: 47.27 K
尺寸: 471 x 278
浏览: 1296 次
点击打开新窗口浏览全图

2.copy vc retain

retain,引用计数+1,内存地址赋值给左值.

copy,对于不可变对象的,相当于retain;对于可变对象,则是深拷贝赋值.

C++代码
  1. NSString* a = [NSString stringWithFormat:@"%@",@"this is a"];  
  2.   
  3. NSString* b = [a copy];  
  4.   
  5. NSString* bb = [a retain];  
  6.   
  7. NSString* cc = [a mutableCopy];//实际上cc应该是NSMutableString类型  
  8.   
  9. NSLog(@"%d,%d,%d,%d",[a retainCount],[b retainCount],[bb retainCount],[cc retainCount]);  
  10.   
  11. 3,3,3,1  
  12.   
  13. NSMutableString* a = [NSMutableString stringWithFormat:@"%@",@"this is a"];  
  14.   
  15. NSString* b = [a copy];//不可变的b  
  16.   
  17. NSString* bb = [a retain];//实际类型是NSMutableString的bb  
  18.   
  19. NSString* cc = [a mutableCopy];//同上  
  20.   
  21. NSLog(@"%d,%d,%d,%d",[a retainCount],[b retainCount],[bb retainCount],[cc retainCount]);  
  22.   
  23. 2,1,2,1  

 

3.一些问题

通过上面2点,思考下面的问题

我们通常如果这样定义一个变量

@property(nonatomic,copy)  NSMutableString* mString;

然后这样使用

@synthesize mString;
NSMutableString* a = [NSMutableString stringWithFormat:@"%@",@"this is a"];
self.mString = a;
[mString insertString:@"m-" atIndex:0];

能通过么?当然不能,赋值后的mString是NSString类型的,不可变.如果需要可以改变就需要自己定义属性函数.

-(void)setMString:(NSMutableString *)m
{
mString = [m mutableCopy];
}

-(NSMutableString *)mString
{
return mString;
}

(当然,NSMutableString不是线程安全的,一般都建议私有之:@private;或者一定要用的话以NSString作为对外接口类型)

4.NSCopying NSMutableCopying NSCopyObjective()

NSCopying就是复制一个对象

NSMutableCopying就是深拷贝一个对象,让两个对象的改变互不影响

(其实上面着两个完全看你怎么写啦)

NSCopyObject(self,0,zone)就是简单的赋值=

(在涉及到ns对象的时候,NSCopyObject不建议使用)

注意看下面一个例子:

@interface ClassB : NSObject <NSCopying>{
NSString* stringB;
}
@property(nonatomic,copy) NSString* stringB;
@end
-(id)copyWithZone:(NSZone *)zone
{
ClassB *b = NSCopyObject(self, 0, zone);
// 使用NSCopyObject时的正确赋值方法,因为没有涉及到原来的内存指针什么事
b->stringB = @"what";
// 看看被注释的这个错误方法,犹豫setter方法的特性,原来的stringB的retainCount减一
// 而犹豫NSCopyObject的特性,两者又是指向同一个地址的,所以,原类中stirngB已经释放了,玩了你dealloc中在释放一次?!.就出错啦
// b.stringB = @"what";
return b;
}

参考:http://stackoverflow.com/questions/2002174/copy-mutablecopy

http://stackoverflow.com/questions/4995254/nsmutablestring-as-retain-copy

http://robnapier.net/blog/implementing-nscopying-439#comment-1312
注释:可变对象mutable比如NSMutableString,NSMutableArray等
       不可变对象immutable比如NSString,NSArray等


-----EOF--
原文来自:http://www.cnblogs.com/v2m_/archive/2011/10/12/2208684.html
作者:v2m

Tags: ios, 拷贝

在 Mac OS X 上安装 32bit Lua + LuaSocket

妖怪的文章,用作参考:http://dualface.qeeplay.com/index.php/archives/1415
原文如下:

由于 OS X 是 64bit 操作系统,所以默认情况下编译出来的 Lua 是 64bit 的。一般应用不会有任何问题,但使用 luac 编译源代码后得到的字节码就只能在 64bit 操作系统中使用。

我使用 Lua 的主要目的是在 iOS/Android 环境中简化游戏开发,因此必须在 OS X 中编译出 32bit 的 Lua 及相关库。

下载 lua 5.1.4 源代码和 5.1.4-3 patch:

XML/HTML代码
  1. $ wget http://www.lua.org/ftp/lua-5.1.4.tar.gz  
  2. $ tar zxf lua-5.1.4.tar.gz  
  3. $ wget -O lua-5.1.4-3.patch http://www.lua.org/ftp/patch-lua-5.1.4-3  
  4. $ cd lua-5.1.4/src  
  5. $ patch < ../../lua-5.1.4-3.patch  

编辑 lua-5.1.4/src/Makefile,将:

XML/HTML代码
  1. macosx:  
  2.         $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"  

改为:

XML/HTML代码
  1. macosx:  
  2.         $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX -arch i386" MYLIBS="-lreadline -arch i386"  

最后:

XML/HTML代码
  1. $ cd lua-5.1.4  
  2. $ make macosx  
  3. $ sudo make install  
然后,就安装到/usr/local/ 下面了。
这是执行make install后显示在屏幕上的,先记录下来,以后可以做参考【膘叔】
  1. cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.1 /usr/local/lib/lua/5.1  
  2. cd src && install -p -m 0755 lua luac /usr/local/bin  
  3. cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp /usr/local/include  
  4. cd src && install -p -m 0644 liblua.a /usr/local/lib  
  5. cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1  

 

 

下载 LuaSocket 2.0.2:

XML/HTML代码
  1. $ wget http://files.luaforge.net/releases/luasocket/luasocket/\  
  2. luasocket-2.0.2/luasocket-2.0.2.tar.gz  
  3. $ tar zxf luasocket-2.0.2.tar.gz  
  4. $ cd luasocket-2.0.2  

打开 config 文件,修改为(使用 Mac OS X 的设定,并指定 32bit 架构):

XML/HTML代码
  1. LUAINC=-I/usr/local/include/lua5.1  
  2.   
  3. #------  
  4. # Compiler and linker settings  
  5. # for Mac OS X  
  6. #  
  7. CC=gcc  
  8. DEF= -DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN  
  9. CFLAGS= $(LUAINC) -I$(COMPAT) $(DEF) -pedantic -Wall -O2 -fno-common -arch i386  
  10. LDFLAGS=-bundle -undefined dynamic_lookup -arch i386  
  11. LD=export MACOSX_DEPLOYMENT_TARGET="10.7"; gcc  
  12.   
  13. #------  
  14. # Compiler and linker settings  
  15. # for Linux  
  16. #CC=gcc  
  17. #DEF=-DLUASOCKET_DEBUG  
  18. #CFLAGS= $(LUAINC) $(DEF) -pedantic -Wall -O2 -fpic  
  19. #LDFLAGS=-O -shared -fpic  
  20. #LD=gcc  

最后编译安装即可:

XML/HTML代码
  1. $ make  
  2. $ sudo make install  
-----EOF--

如果你不是特别需要安装32位的lua,那么妖怪那段增加 -arch i386这一段的内容就可以不需要改动了。嗯。就是这样简单。

但真的这样吗?NND,事实上我在按照上面操作的时候,告诉我wget这个函数不存在,我晶啊,wget居然不是标配。

最后只能用curl解决了这个问题,把wget http://xxxx.xxx/xxx.xxx.gz 改为:curl http://xxx.xxx/xxx.gz -O xxx.gz,OK,就完成了。。

然后利用这样的操作也下载了一份wget,搞定。还是wget更方便,因为它很简单。。。

 

 

 

Tags: lua

SecureCRT for MAC 破解

苹果下的ssh工具不是特别的多,所幸老牌的securecrt还是支持MAC版本的。
不过,beta版只有30天的试用期,查了一下的网上资料,发现还是有办法的。
那就是。。。
rm /Users/用户名/Library/Application\ Support/VanDyke/SecureCRT/Config/SecureCRT_eval.lic
这个文件,我最初是想改那个文件里的过期时间 ,失败了,所以还是直接删除吧。。。
最后设了个crontab,每周一次算了。每周一13点删除一次。以防万一,HOHO

Tags: securecrt, ssh