ios媒体

1- 音频 
[1] 音乐往往是存储在iPod曲库(注意位置)中的,可以通过媒体选择器(media picker)或者媒体查询(media query)读取,然后用音乐播放器MPMusicPlayerController播放。 
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
[musicPlayer setShufleMode: MPMusicShuffleModeSongs]; 
[musicPlayer setRepeatMode: MPMusicRepeatModeAll]; 
[musicPlayer setQueueWithQuery: [MPMediaQuery songsQuery]; 
[musicPlayer play]; 

applicationMusicPlayer返回的播放器,在你的应用中播放音乐。它不会影响到iPod播放器,也不能从iPod播放器重获取信息。 
iPodMusicPlayer返回的是iPod播放器,在你推出应用后,所有的设置都会影响到之后设备上的iPod播放器。 
获得音乐播放器后,需要为它设置一个播放队列。可以用setQueueWithQuery:放方法,通过媒体查询MPMediaQuery来设置播放队列,也可以用setQueueWithItemCollection:方法,通过MPMdiaItemCollection来设置播放队列。 
重复模式repeatMode可以设置为不重复、重复当前曲目、或整个播放列表;乱序播放shuffleMode可以设置为不乱序、乱序播放曲目或乱序播放专辑;音量volume的设置与音频播放器一样。 
skipToNextItem跳到下一首,skipToPreviousItem跳到上一首,skipToBegin跳到第一首。 
对应的宏都是以MPMusic开头。 


[2] 利用系统声音服务来播放短暂音效(时长30秒以内),并震动: 
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

播放指定音效: 
NSURL *fileURL = [NSURL fileURLWithPath: path isDirectory: NO]; 
// 创建音效ID 
SystemSoundID soundID; 
AudioServiceCreateSystemSoundID((CFURLRef) fileURL, &soundID); 
// 播放声音 
AudioServicesPlaySystemSound(soundID); 

[3] 音频播放器 
没有时长限制 
NSURL *fileURL = [NSURL fileURLWithPath: path isDirectory: NO]; 
// 用URL来初始化音频播放器-播放的不是iPod曲库中的音乐 
AVAudioPlayer* player = [AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: NO]; 
// 准备播放 
[player prepareToPlay]; 
// 设置代理 
[player setDelegate: self]; 

方法:play、pause、stop。可以通过playing属性查询播放器是否正在播放当中,可以通过volume属性来修改和查询播放器的播放增益(从0.0到1.0),可通过setting属性查询播放器其他设置。 

duration表示音频的时间长度, currentTime表示当前播放到的时间。播放结束后可以通过代理方法audioPlayerDidFinishPlaying:来处理播放后设置。 

2- 视频 
视频播放可以采用网页视图(UIWebView)进行嵌入式播放(能播放YouTube视频),或者采用电影播放器(MPMoviePlayerController)进行播放。 
[1] 电影播放器 
MPMoviePlayerController *player = [MPMoviePlayerController alloc]initWithContentURL: url]; 
// 设置播放器的大小,并将其加入视图中 
[player.view setFrame: rectFrame]; 
[self.view addSubView: player.view]; 
播放器的背景视图backgroundView。 
全屏[player setFullscreen: YES animated: YES]; 
播放另一个影片[player setContentURL: newURL]; 
[player requestThumbnailImagesAtTimes:arrayTimes timeOption:MPMovieTimeOptionNearestKeyFrame]; // 表示播放器不会在你所指定的时间去截取预览,而是在绝对时间的附近几帧中寻找效果最好的帧做为预览。 
scalingMode规定了影片的缩放模式。 
initialPlaybackTime用来控制视频开始播放的时间,单位是秒。 
如果视频源在网络上,那么需要正确设置服务器端的mimeType。 

你可能感兴趣的:(媒体)