在App处于后台时,保持UIWebView播放音乐

时间:2012-08-13 15:50:53

标签: iphone xcode uiwebview

我认为一切都在标题中。

我有一个播放音乐的UIWebiew,当用户使用电源或主页按钮,将应用程序放在后台时,我希望音乐能够继续播放。

有可能吗?

感谢您的帮助!

4 个答案:

答案 0 :(得分:5)

您无法使用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];

答案 1 :(得分:3)

有点棘手,但有可能。来自以下官方Apple文档:

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

您需要先在plist中声明UIBackgroundModes的{​​{1}},然后在audio

中写下以下代码段
AppDelegate

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

答案 2 :(得分:0)

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

  allowsInlineMediaPlayback  property
  mediaPlaybackRequiresUserAction  property
  mediaPlaybackAllowsAirPlay  property

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

答案 3 :(得分:0)

是的,这是可能的。你需要这样做:

  1. 激活播放会话:
  2. @import AVFoundation; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

    1. 在Info.plist中添加音频后台模式:
    2. 所需的背景模式:App使用AirPlay播放音频或流音频/视频

      <key>UIBackgroundModes</key> <array> <string>audio</string> </array>