may*_*uur 4 iphone mpmovieplayercontroller mpmusicplayercontroller ios avplayer
好吧,所以我有一个应用程序,其中有许多练习视频,根本没有任何声音.
此外,在练习开始时,我会显示设备音乐播放器中的所有mp3文件,供用户选择音频文件.
但是,每当视频开始时,音乐播放器就会暂停.如何让它以音乐播放器继续播放和视频同时播放的方式工作.
对于Video,使用类--MPMoviePlayerViewController
它添加如下:
self.movieplayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:urlStr];
self.movieplayerController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
self.movieplayerController.moviePlayer.fullscreen = YES;
self.movieplayerController.moviePlayer.view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[self presentModalViewController:movieplayerController animated:YES];
Run Code Online (Sandbox Code Playgroud)
对于音乐播放器,类是--- MPMusicPlayerController.
音频选择并播放如下:
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection
{
[self dismissModalViewControllerAnimated: YES];
[self.musicPlayer stop];
[self.musicPlayer setQueueWithItemCollection:mediaItemCollection];
[self.musicPlayer play];
}
Run Code Online (Sandbox Code Playgroud)
编辑:
尝试AVPlayer播放视频但没有成功!
代码如下:
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:urlStr];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
AVPlayerLayer *avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
avPlayerLayer.frame = self.view.frame;
[self.view.layer addSublayer:avPlayerLayer];
[player play];
Run Code Online (Sandbox Code Playgroud)
终于得到了答案....
适用于AVPlayer.
如上所述在问题中初始化它.
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:urlStr];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
AVPlayerLayer *avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
avPlayerLayer.frame = self.view.frame;
[self.view.layer addSublayer:avPlayerLayer];
[player play];
Run Code Online (Sandbox Code Playgroud)
但在此之前,在AppDelegate中,创建一个允许混音的AudioSession.
AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
UInt32 allowMixWithOthers = true;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixWithOthers), &allowMixWithOthers);
AudioSessionSetActive(true);
Run Code Online (Sandbox Code Playgroud)
从这里得到了答案.
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |