iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
2015-09-14 15:19
323 查看
转:http://www.xiaoyaoli.com/?p=368
就像很多iOS上面的播放器App一样,本文编写一个程序可以通过iTunes往里面放文件,比如编写一个音乐播放器程序,通过itune往里面放歌曲文件,然后通过这个App来播放这首歌曲,首先我创建了一个普通的SingleView程序,叫做FileShareDemo。下面是通过iTunes往App传输文件的截图:
可以看到像GPlayer,AcePlayer播放器,视频资源通过这种方式传输是很普遍的(很多苹果用户确实不知道这样可以传输数据),这里我创建了一个App叫做FileShareDemo,可以看到,也可以往里面拖拽数据,这里拖拽了一首歌2.mp3,但是默认情况下创建的App是不可以出现在左边栏的,需要按下图在plist里面加一行:
接下来的工作是判断有没有导入进去,下面的代码我写在了viewdidload里:
NSFileManager *manager=[NSFileManager defaultManager];
NSString *path=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@”2.mp3″];
if ([manager fileExistsAtPath:path]) {
showLabel.text=@”have file”;
}else {
showLabel.text=@”have no file”;
}
NSLog(@”NSHomeDirectory %@”,NSHomeDirectory());
这里有几点要说明,首先NSHomeDirectory()打印出来是
/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33
这个是程序的路径,8F01293C-C02D-4EF8-A9F7-1A7B10944F33是每个App独特的标记,比如愤怒的小鸟会是另一串信息,具体干嘛的不清楚。然后我在后面添加了/Documents和/2.mp3,通过[manager fileExistsAtPath:path]来判断这个路径存不存在,用一个label打印出来。如果拖拽进去了可以看到label的内容是“have file”,通过程序运行的label信息可以看到/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33/Documents/2.mp3就是导入的文件的路径。
之后我们可以通过这段代码来播放歌曲:
NSError* err;
player = [[AVAudioPlayer alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:&err ];
player.volume=0.7;
[player play];
之前的path直接在这里可以用。
下面再次补充一下文件的结构问题:
每个程序都会包含这几个文件,Documents就是iTunes导入的文稿存储的地方,FileShareDemo是Xcode项目包,如果通过Xcode往项目里放素材什么的都在这里,后两个不知道有什么具体作用。
就像很多iOS上面的播放器App一样,本文编写一个程序可以通过iTunes往里面放文件,比如编写一个音乐播放器程序,通过itune往里面放歌曲文件,然后通过这个App来播放这首歌曲,首先我创建了一个普通的SingleView程序,叫做FileShareDemo。下面是通过iTunes往App传输文件的截图:
可以看到像GPlayer,AcePlayer播放器,视频资源通过这种方式传输是很普遍的(很多苹果用户确实不知道这样可以传输数据),这里我创建了一个App叫做FileShareDemo,可以看到,也可以往里面拖拽数据,这里拖拽了一首歌2.mp3,但是默认情况下创建的App是不可以出现在左边栏的,需要按下图在plist里面加一行:
接下来的工作是判断有没有导入进去,下面的代码我写在了viewdidload里:
NSFileManager *manager=[NSFileManager defaultManager];
NSString *path=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@”2.mp3″];
if ([manager fileExistsAtPath:path]) {
showLabel.text=@”have file”;
}else {
showLabel.text=@”have no file”;
}
NSLog(@”NSHomeDirectory %@”,NSHomeDirectory());
这里有几点要说明,首先NSHomeDirectory()打印出来是
/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33
这个是程序的路径,8F01293C-C02D-4EF8-A9F7-1A7B10944F33是每个App独特的标记,比如愤怒的小鸟会是另一串信息,具体干嘛的不清楚。然后我在后面添加了/Documents和/2.mp3,通过[manager fileExistsAtPath:path]来判断这个路径存不存在,用一个label打印出来。如果拖拽进去了可以看到label的内容是“have file”,通过程序运行的label信息可以看到/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33/Documents/2.mp3就是导入的文件的路径。
之后我们可以通过这段代码来播放歌曲:
NSError* err;
player = [[AVAudioPlayer alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:&err ];
player.volume=0.7;
[player play];
之前的path直接在这里可以用。
下面再次补充一下文件的结构问题:
每个程序都会包含这几个文件,Documents就是iTunes导入的文稿存储的地方,FileShareDemo是Xcode项目包,如果通过Xcode往项目里放素材什么的都在这里,后两个不知道有什么具体作用。
相关文章推荐
- Android底部菜单栏(tabhost实现)
- 关于python2.7的md5加密遇到的问题(TypeError: Unicode-objects must be encoded before hashing)
- Android DrawerLayout的使用
- Android WebView 简单使用
- cocos2d-x 集成社交分享平台shareSDK
- android中svg文件的使用
- ActionBar SearchView空指针异常
- Android第四十九期 - 仿QQ空间上传功能+本地数据库存储
- iOS——bug错误:can't link with a main executable file for architecture armv7
- 腾讯Bugly干货分享:Android机型适配之痛
- IOS UIWebView与Javascript之间的交互
- Android自定义ImageView,方角,圆角头像(可根据自己的需求来设定头像的圆角或者方角的大小)
- 开源分享三(炫酷的Android Loading动画)
- Cocos2d-x3.0模版容器详解之一:cocos2d::Vector<T>
- 【IOS 开发学习总结-OC-7.7-★★】 objective-c——指针
- cocos2d-x 打开url 和 截屏功能
- Vlc-for-android源码分析
- cocos基础教程(2)Window环境下搭建(补充)
- VLC for Android源码下载和编译
- cocos基础教程(2)Window环境下搭建