提取 MPMoviePlayerViewController 音频以继续在后台收听

Posted

技术标签:

【中文标题】提取 MPMoviePlayerViewController 音频以继续在后台收听【英文标题】:Extract MPMoviePlayerViewController audio to keep listening in background 【发布时间】:2014-06-05 14:59:24 【问题描述】:

首先,我几天来一直在寻找解决我的问题的方法(包括这里)。我发现了一些处理相同问题的主题,但它们根本没有解决我的问题。

我正在开发一个应用程序,它可以播放存储在应用程序中的 mp4 视频以及 mp4 在线视频。

我正在使用 MPMoviePlayerViewController 来播放视频,并且当我在应用程序中时效果很好,但是当我按下主页按钮(背景)时问题就来了。声音停止,我的目标是在我不在应用程序中时(当 Iphone 被锁定或在后台时)继续收听视频音频。

我已经在 plist 文件中配置了继续在后台收听音频的选项,并且还尝试创建音频会话,但没有任何效果。

我在搜索中发现,当您不在应用程序中时,Apple 不允许继续播放视频,为了实现这一点,您必须执行一些操作,例如分离音频并在没有视频的情况下继续播放,然后,当用户回到应用程序,从音频时刻恢复视频,但我找不到有关此方法的太多信息。

我创建了一个示例项目来尝试不同的事情来做,目前我的代码是这样的:

h。文件:

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController 

@property (strong, nonatomic) MPMoviePlayerController *moviePlayer;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (strong, nonatomic) AVAudiosession *audioPlayer;




@end

米。文件

-(void)playVideo 

NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"video"
                                                   ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:urlStr];
_moviePlayer= [[MPMoviePlayerController alloc] initWithContentURL:url];

[self.view addSubview:_moviePlayer.view];
int posTitulo = (int) roundf(self.titleLabel.frame.origin.y);
int altTitulo = (int) roundf(self.titleLabel.frame.size.height);
int anchTitulo = (int) roundf(self.titleLabel.frame.size.width);
_moviePlayer.view.frame = CGRectMake(0,posTitulo+altTitulo, anchTitulo, anchTitulo *         0.65);
[_moviePlayer play];

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];

NSError *activationError = nil;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&activationError];
[audioSession setActive:YES error:&activationError];



如果有人取得了这样的成就,我会很感激他的帮助。

非常感谢

【问题讨论】:

【参考方案1】:

我终于解决了。

我使用 AVPlayer 而不是 MPMoviePlayerController,这个“指南”来自苹果开发者网站:

https://developer.apple.com/library/ios/qa/qa1668/_index.html

【讨论】:

以上是关于提取 MPMoviePlayerViewController 音频以继续在后台收听的主要内容,如果未能解决你的问题,请参考以下文章

文本特征提取

js正则提取数字小数,提取中文,提取英文

PDF如何提取页面?怎么提取PDF文件中的某一页

excel提取身份证日期的方法你还不会?

如何使用Opencv对图像进行颜色特征提取

医学CT图像特征提取算法--肺结节CT图像特征提取算法