- 浏览: 675774 次
- 性别:
- 来自: 深圳
最新评论
-
fingerplay:
请问一下,第一份,逻辑树,就是代码里可以操纵的,例如更改lay ...
UIView与CALayer -
ok_lyc:
分享到哪里去了
iPhoneUIFont各种字体 -
lliiqiang:
我的个人理解:wait方法是在java虚拟机层面上在获取对象锁 ...
JAVA多线程同步wait、notify、synchronized -
milixw:
谢谢分享,就在找这个
iphone 推送通知 java 实现 -
wsqwsq000:
你的log4j包不行,上网搜一下:log4j-1.2.16.j ...
iphone 推送通知 java 实现
(只能访问音频文件,如music,podcast,audiobook等) 有两种播放器可以选择,一种是application music player,另外一种是iPod music player。 第一种播放器是一种内部播放器,当程序对出后停止播放;而第二种播放器则与iPod播放器内的信息相关,退出之后不会停止播放。获取方式如下: 播放之前需要设置播放器的播放队列 管理播放模式和播放状态的一些属性 播放状态 MPMusicPlaybackState 播放控制方法 播放状态发生变化时可以发送通知 MPMusicPlayerControllerPlaybackStateDidChangeNotification 可以通过该通知来改变播放按钮的样式 MPMusicPlayerControllerNowPlayingItemDidChangeNotification MPMusicPlayerControllerVolumeDidChangeNotification 具体步骤 1.注册和开始发送通知 主要是设置代理和选择多媒体类型,然后通过代理方法来获取选中的歌曲 NSString *const MPMediaItemPropertyTitle; NSString *const MPMediaItemPropertyAlbumTitle; NSString *const MPMediaItemPropertyArtist; 属性 需要设置两个属性: filter and grouping type filter描述查询内容,grouping type 描述返回内容的排列方式 查询可以获取items,也可以获取collections1.访问音乐库的两种方法,
2.MPMusicPlayerController的使用
enum
{
MPMusicPlaybackStateStopped,
MPMusicPlaybackStatePlaying,
MPMusicPlaybackStatePaused,
MPMusicPlaybackStateInterrupted,
MPMusicPlaybackStateSeekingForward,
MPMusicPlaybackStateSeekingBackward
};
typedef
NSInteger MPMusicPlaybackState;
Listing 2-1 Registering
for
and activating music player notifications
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter
addObserver: self
selector: @selector (handle_NowPlayingItemChanged:)
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: musicPlayer];
[notificationCenter
addObserver: self
selector: @selector (handle_PlaybackStateChanged:)
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: musicPlayer];
[musicPlayer beginGeneratingPlaybackNotifications];
Listing 2-2 Unregistering and deactivating music player notifications
[[NSNotificationCenter defaultCenter]
removeObserver: self
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: musicPlayer];
[[NSNotificationCenter defaultCenter]
removeObserver: self
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: musicPlayer];
[musicPlayer endGeneratingPlaybackNotifications];
Listing 2-3 Creating an application music player
MPMusicPlayerController* appMusicPlayer =
[MPMusicPlayerController applicationMusicPlayer];
[appMusicPlayer setShuffleMode: MPMusicShuffleModeOff];
[appMusicPlayer setRepeatMode: MPMusicRepeatModeNone];
Listing 2-4 Creating an iPod music player
MPMusicPlayerController* iPodMusicPlayer =
[MPMusicPlayerController iPodMusicPlayer];
if
([iPodMusicPlayer nowPlayingItem]) {
// Update the UI (artwork, song name, volume indicator, etc.)
// to reflect the iPod state
}
4.控制播放3.MPMediaPickerController的使用
- (IBAction)addSongsToMusicPlayer:(id)sender
{
MPMediaPickerController *mpController = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
mpController.delegate = self;
mpController.prompt = @
"Add songs to play"
;
mpController.allowsPickingMultipleItems = YES;
[self presentModalViewController:mpController animated:YES];
[mpController release];
}
#pragma mark - Media Picker Delegate Methods
- (
void
)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection
{
[self.musicPlayer setQueueWithItemCollection:mediaItemCollection];
[self dismissModalViewControllerAnimated:YES];
}
- (
void
)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker
{
[self dismissModalViewControllerAnimated:YES];
}
4.MPMediaItem
- (id) valueForProperty: (NSString *) property
5.MPMediaItemCollection
- (id) valueForProperty: (NSString *) property
6.MPMediaPlaylist
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
NSArray *playlists = [myPlaylistsQuery collections];
for
(MPMediaPlaylist *playlist in playlists) {
NSLog (@
"%@"
, [playlist valueForProperty: MPMediaPlaylistPropertyName]);
NSArray *songs = [playlist items];
for
(MPMediaItem *song in songs) {
NSString *songTitle =
[song valueForProperty: MPMediaItemPropertyTitle];
NSLog (@
"\t\t%@"
, songTitle);
}
}
7.MPMediaQuery
MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSLog(@
"Logging items from a generic query..."
);
NSArray *itemsFromGenericQuery = [everything items];
for
(MPMediaItem *song in itemsFromGenericQuery) {
NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
NSLog (@
"%@"
, songTitle);
}
MPMediaPropertyPredicate *artistNamePredicate =
[MPMediaPropertyPredicate predicateWithValue: @
"Happy the Clown"
forProperty: MPMediaItemPropertyArtist];
MPMediaQuery *myArtistQuery = [[MPMediaQuery alloc] init];
[myArtistQuery addFilterPredicate: artistNamePredicate];
NSArray *itemsFromArtistQuery = [myArtistQuery items];
MPMediaPropertyPredicate *artistNamePredicate =
[MPMediaPropertyPredicate predicateWithValue: @
"Sad the Joker"
forProperty: MPMediaItemPropertyArtist];
MPMediaPropertyPredicate *albumNamePredicate =
[MPMediaPropertyPredicate predicateWithValue: @
"Stair Tumbling"
forProperty: MPMediaItemPropertyAlbumTitle];
MPMediaQuery *myComplexQuery = [[MPMediaQuery alloc] init];
[myComplexQuery addFilterPredicate: artistNamePredicate];
[myComplexQuery addFilterPredicate: albumNamePredicate];
Listing 4-4 Applying multiple predicates when initializing a media query
NSSet *predicates =
[NSSet setWithObjects: artistNamePredicate, albumNamePredicate, nil];
MPMediaQuery *specificQuery =
[[MPMediaQuery alloc] initWithFilterPredicates: predicates];
Listing 4-5 Testing
if
a property key can be used
for
a media property predicate
if
([MPMediaItem canFilterByProperty: MPMediaItemPropertyGenre]) {
MPMediaPropertyPredicate *rockPredicate =
[MPMediaPropertyPredicate predicateWithValue: @
"Rock"
forProperty: MPMediaItemPropertyGenre];
[query addFilterPredicate: rockPredicate];
}
Listing 4-6 Using grouping type to specify media item collections
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate: [MPMediaPropertyPredicate
predicateWithValue: @
"Moribund the Squirrel"
forProperty: MPMediaItemPropertyArtist]];
// Sets the grouping type for the media query
[query setGroupingType: MPMediaGroupingAlbum];
NSArray *albums = [query collections];
for
(MPMediaItemCollection *album in albums) {
MPMediaItem *representativeItem = [album representativeItem];
NSString *artistName =
[representativeItem valueForProperty: MPMediaItemPropertyArtist];
NSString *albumName =
[representativeItem valueForProperty: MPMediaItemPropertyAlbumTitle];
NSLog (@
"%@ by %@"
, albumName, artistName);
NSArray *songs = [album items];
for
(MPMediaItem *song in songs) {
NSString *songTitle =
[song valueForProperty: MPMediaItemPropertyTitle];
NSLog (@
"\t\t%@"
, songTitle);
}
}
专辑封面的使用
Listing 4-7 Displaying album artwork
for
a media item
MPMediaItemArtwork *artwork =
[mediaItem valueForProperty: MPMediaItemPropertyArtwork];
UIImage *artworkImage =
[artwork imageWithSize: albumImageView.bounds.size];
if
(artworkImage) {
albumImageView.image = artworkImage;
}
else
{
albumImageView.image = [UIImage imageNamed: @
"noArtwork.png"
];
}
发表评论
-
iphone开发如何后台播放音频
2012-12-25 14:38 1557<!--?xml version="1.0&q ... -
iPhone开发中使用AVAudioPlayer出现内存泄漏的解决办法
2012-12-25 11:53 3345最近在使用AVAudioPlayer播放音频时,发现 ... -
dispatch多线程
2012-10-31 20:45 1453#define kBgQueue dispat ... -
iPhone开发使用数组排序
2012-10-30 19:18 1787我们以数组的排序为例(也许NSSortDes ... -
用containsObject判断是否存在的问题
2012-10-16 15:37 4560在NSArray或NSMutableArray中想使用c ... -
用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误
2012-09-17 10:30 1375转载自:http://longtimenoc.com/a ... -
使用xib加载视图后,在dealloc中crash
2012-09-08 11:20 1764最近遇到个问题,就是使用xib加载视图后,经常会 ... -
iPhone中如何获取当前输入法
2012-09-06 16:28 1696如题,在iPhone开发中,我们如何获取当前的输入 ... -
objectForKey和valueForKey的区别
2012-08-24 17:23 2162valueforkey和objectforkey区别 ... -
粒子发射系统中的CAEmitterLayer
2012-08-22 16:00 2517简介:CAEmitterLayer提供了一个基于 ... -
iPhone开发使用UILineBreakMode不精确
2012-07-26 12:02 1550一开始用UILineBre ... -
Xcode方法提示不显示的解决办法
2012-07-24 09:45 1611Xcode方法提示显示的不正确,只显示方法 ... -
NSArray的排序功能sortedArrayUsingSelector
2012-07-18 17:54 2227- (NSArray *)sortedArrayUs ... -
iPhoneUIFont各种字体
2012-07-24 09:45 1556苹果开发者们想在应用中使用不同字体的话,往往会发现 ... -
iPhone使用ASIHTTPRequest请求时,发送了2次请求
2012-07-24 09:45 2554前段时间用到ASIHTTPRequest做请求时, ... -
iPhone开发调用新浪微博OAuth2.0
2012-06-05 02:30 3100就像题目说的,这次的小项目是做一个新浪微博的客 ... -
Iphone cover flow 开源实现
2012-06-04 00:04 884tapkulibrary-CloverFlow ... -
ASIHTTPRequest下载示例(支持断点续传)
2012-07-24 09:45 1593在工程中,我们会常常遇到需要下载的程序,比 ... -
ASIHTTPRequest类库简介和使用说明
2012-07-24 09:45 1692文章转载自:http: ... -
NSUserDefaults 用户偏好设定保存自定义类(序列化)
2012-04-17 23:30 0NSUserDefaults 用户偏好设定保存 ...
相关推荐
iPod库访问编程-1.pdf iPod库访问编程-1.pdf
ipod iphone 访问接口资料以及示例代码
这个一个IPOD接口电路的原理图,在做IPOD座子的时候,它的参数特别主要,可以一起参考研究一下
iPod Click Wheel Games商店以前是存在与iTunes Store里面的,后来砍掉了。苹果没有开放sdk,所以没啥第三方游戏。支持的设备有iPod nano (3rd 4th 5th generation),iPod Classic,iPod (5th generation)。
ipod所有版本访问控制协议 ipod 30pin版图 Professional.iPhone.and.iPod.Touch.Programming Professional.iPhone.and.iPod.Touch.Programming
Tansee iPod Transfer Photo能够将你的图片从iPod复制到Windows PC。
x-ipod-rip ipod系列软件工具包
实现ipod当前播放列表功能代码,仅供大家参考
libgpod 是一个用来访问 iPod 内容的抽象库,提供易用的 API 来获取文件列表和播放列表,并提供修改和保存的方法。 标签:libgpod
iPod_Ext_Spec_R16.pdf 使用IPOD的扩展协议4来建立你自己的IPOD导航界面的协议
Ipod touch 4 guider Ipod 4 应用操作指南
ipod interface protocol 接口
支持 iPod shuffle(第 4 代),有关功能描述和完整的说明,以及对 iPod 进行故障排除的方法与技巧
能把ipod的歌曲、视频传回电脑的软件,目前为英文试用版,一次只能传送5首歌曲或5个视频,但非常好用。 windows版本。
iPod接口中文说明,开发iphone外设的一定要看一下。
ipod coprocessor,ipod coprocessor
关于ipod的交互体验,来源apple官方网,翻译过来的
佳佳iPod格式转换器是一款专业的并且操作简单的苹果iPod视频格式转换器。佳佳iPod格式转换器可以方便的将各种流行的视频格式转换为苹果iPod所支持的MP4视频格式。比如:将RM、RMVB、AVI、VOB、DAT、VCD、DVD、SVCD、...
IPOD接口定义与DIY连接线 IPOD接口定义与DIY连接线
不用iTunes就可以调整一代ipod shuffle的歌曲顺序,软件小巧,需要安装有python.