Iphone 让UIWebView在应用程序处于后台时播放音乐

Iphone 让UIWebView在应用程序处于后台时播放音乐,iphone,xcode,uiwebview,Iphone,Xcode,Uiwebview,我想一切都在标题里 我有一个可以播放音乐的UIWebView,当用户使用“电源”或“主页”按钮,将应用程序置于后台时,我希望音乐继续播放 可能吗 谢谢你的帮助 我认为这是不可能的,即使在检查了UIWebView的文档后,我也只发现了以下三个与媒体播放相关的属性 allowsInlineMediaPlayback property mediaPlaybackRequiresUserAction property mediaPlaybackAllowsAirPlay propert

我想一切都在标题里

我有一个可以播放音乐的UIWebView,当用户使用“电源”或“主页”按钮,将应用程序置于后台时,我希望音乐继续播放

可能吗


谢谢你的帮助

我认为这是不可能的,即使在检查了
UIWebView
的文档后,我也只发现了以下三个与媒体播放相关的属性

  allowsInlineMediaPlayback  property
  mediaPlaybackRequiresUserAction  property
  mediaPlaybackAllowsAirPlay  property

不幸的是,他们都没有这样做。

我认为这是不可能的,即使在检查了
UIWebView
的文档后,我也只发现了以下三个与媒体播放相关的属性

  allowsInlineMediaPlayback  property
  mediaPlaybackRequiresUserAction  property
  mediaPlaybackAllowsAirPlay  property

不幸的是,它们都没有做到这一点。

使用UIWebView实际上无法做到这一点,但您仍然可以做到。此方法仍然通过URL从在线资源中流式传输音频。这里有一些代码可以帮助您。现在,让我们假设,当应用程序退出以获取视频时,您希望流式传输音频,那么它非常类似,但是使用MediaPlayer框架而不是AVAudioPlayer框架

NSURL *url = [NSURL URLWithString:@"http://website.com/audio.mp3"];

NSData *data = [NSData dataWithContentsOfURL:url];

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];

[audioPlayer play];

实际上,您不能使用UIWebView执行此操作,但仍然可以执行此操作。此方法仍然通过URL从在线资源中流式传输音频。这里有一些代码可以帮助您。现在,让我们假设,当应用程序退出以获取视频时,您希望流式传输音频,那么它非常类似,但是使用MediaPlayer框架而不是AVAudioPlayer框架

NSURL *url = [NSURL URLWithString:@"http://website.com/audio.mp3"];

NSData *data = [NSData dataWithContentsOfURL:url];

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];

[audioPlayer play];

有点棘手,但这是可能的。苹果官方文件如下:

您需要首先在plist中声明
音频的
UIBackgroundModes
,然后在
AppDelegate

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError *setCategoryError = nil;
BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (!success) { /* handle the error condition */ }

NSError *activationError = nil;
success = [audioSession setActive:YES error:&activationError];
if (!success) { /* handle the error condition */ }
#导入
#进口
AVAudioSession*audioSession=[AVAudioSession sharedInstance];
n错误*setCategoryError=nil;
BOOL success=[audioSession setCategory:AVAudioSessionCategoryPlayback错误:&setCategoryError];
如果(!success){/*处理错误条件*/}
n错误*activationError=nil;
成功=[audioSession setActive:是错误:&activationError];
如果(!success){/*处理错误条件*/}

现在,当您从UIWebView播放音频时,您可以转到主屏幕,切换到另一个应用程序,或锁定屏幕,音频将继续播放。

有点棘手,但这是可能的。苹果官方文件如下:

您需要首先在plist中声明
音频的
UIBackgroundModes
,然后在
AppDelegate

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError *setCategoryError = nil;
BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (!success) { /* handle the error condition */ }

NSError *activationError = nil;
success = [audioSession setActive:YES error:&activationError];
if (!success) { /* handle the error condition */ }
#导入
#进口
AVAudioSession*audioSession=[AVAudioSession sharedInstance];
n错误*setCategoryError=nil;
BOOL success=[audioSession setCategory:AVAudioSessionCategoryPlayback错误:&setCategoryError];
如果(!success){/*处理错误条件*/}
n错误*activationError=nil;
成功=[audioSession setActive:是错误:&activationError];
如果(!success){/*处理错误条件*/}

现在,当您从UIWebView播放音频时,您可以转到主屏幕,切换到另一个应用程序,或锁定屏幕,音频将继续播放。

是的,这是可能的。您需要执行以下操作:

  • 激活播放会话:
  • @import-AVFoundation;
    [[AVAudioSession sharedInstance]设置类别:AVAudioSessionCategoryPlayback错误:nil]

  • 在Info.plist中添加音频背景模式:
  • 所需背景模式:应用程序使用AirPlay播放音频或流式音频/视频

    ui背景模式
    音频
    

    是的,这是可能的。您需要执行以下操作:

  • 激活播放会话:
  • @import-AVFoundation;
    [[AVAudioSession sharedInstance]设置类别:AVAudioSessionCategoryPlayback错误:nil]

  • 在Info.plist中添加音频背景模式:
  • 所需背景模式:应用程序使用AirPlay播放音频或流式音频/视频

    ui背景模式
    音频
    

    另一篇文章可能会帮助你让AVAudioPlayer在后台播放音乐:谢谢你,克里斯,但我认为它不会起作用,因为我没有在UIWebView中打开.mp3,事实上,我在soundcloud上播放音乐。用户可以访问一个配乐列表并启动一个。可能有一个音频文件链接到soundcloud的html5音频播放器。检查网站的来源,看看它连接到哪里,将其音频文件输入html5音频播放器。另一篇文章可能会帮助你让AVAudioPlayer在后台播放音乐:谢谢你,Chris,但我认为它不会工作,因为我没有在UIWebView中打开.mp3,事实上,我在soundcloud上播放音乐。用户可以访问一个配乐列表并启动一个。可能有一个音频文件链接到soundcloud的html5音频播放器。检查该网站的来源,并查看其连接到何处,以将其音频文件输入html5音频播放器