AVPlayer 播放 iOS 7 后台通知中的音频

2023-12-21

I have audio, fetch and remote-notification set in UIBackgroundModes我通过以下方式成功接收了我的应用程序在后台(未激活)的远程通知:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

我的里面有以下内容:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions:

self.audioPlayer = [[AVPlayer alloc] init];

NSError *sessionError = nil;
NSError *activationError = nil;
[[AVAudioSession sharedInstance] setActive:YES error:&activationError];
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&sessionError]) {
    NSLog(@"[AppDelegate] Failed to setup audio session: %@", sessionError);
}

And in - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler我有以下内容:

            NSLog(@"Playing url: %@", filePath);

            AVPlayerItem * currentItem = [AVPlayerItem playerItemWithURL:[NSURL fileURLWithPath:filePath]];

            [self.audioPlayer replaceCurrentItemWithPlayerItem:currentItem];
            [self.audioPlayer play];

我看到这段代码通过 NSLog 执行,但没有产生声音。实际上,如果应用程序在进入后台后的几秒钟内收到通知,音频就会播放,或者即。第一次收到通知时,音频会播放,但此后就不再播放。

iOS 7 中的应用程序可以像这样从后台异步启动音频输出吗?在它进入睡眠状态并且有一段时间没有发出任何声音之后?


你不能initiate背景中有音频。唯一的事情是audio后台模式允许您在应用程序从前台转到后台时继续产生声音。

这是一个完全合理的规则。如果任何恰好在后台运行的应用程序突然开始从设备中发出声音,让用户感到困惑和烦恼,那将是可怕的!

但是,如果您的应用程序能够接收远程事件,并且它已产生声音,因此它是远程事件目标,那么,audio后台模式下,它可以继续作为远程事件目标,因此可以在后台发出声音,只要同时没有其他应用程序成为远程事件目标。

在后台产生声音的最可靠方法是将声音附加到本地通知。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVPlayer 播放 iOS 7 后台通知中的音频 的相关文章

  • 为什么我的唯一设备 ID 发生了变化?

    我已经使用以下方法大约一个月了 没有任何问题 即使卸载应用程序后 设备 ID 仍保持不变 最近我注意到我的设备 ID 发生了变化 我最近在 Xcode6 上做了很多应用程序的构建 这可能是一个原因吗 我希望我确切地知道它什么时候发生变化 这
  • 查找 iPhone 上已安装应用程序的列表

    是否可以以编程方式查找我的 iOS 设备上安装的所有应用程序的名称 有没有可用的API 谢谢您的帮助 不可以 由于沙盒环境 iOS 应用程序无法访问其他应用程序的信息
  • 检查包含 URL 的字符串“http://”

    我正在尝试检查用户输入的 URL 但我正在与一些错误和警告作斗争 BOOL textFieldShouldReturn UITextField textField check http NSString check textField te
  • 自动布局中的“使用标准值”和“限制边距”是什么意思?

    我已经完成了一些自动布局教程 例如this https developer apple com library ios recipes xcode help IB auto layout chapters pin constraints h
  • c# AudioFingerprinting 和局部敏感哈希

    我之前发现过类似的帖子 但没有真正回答这个问题 在我的指纹识别中 我生成了一个包含 5 个整数的记录集 例如 33 42 88 121 194 这些对应于特定音乐样本的最高幅度的频率 例如 对于 30ms 的音频样本 我有以下频率的桶 0
  • 使用 Swift 的核心数据瞬态值

    有谁知道 或者有一个例子 如何使用 Swift 处理核心数据瞬态值 我知道在属性之前使用 NSManaged 但无法弄清楚如何编写逻辑以使用 Swift 构建瞬态值 复选标记短暂的数据模型中特定属性的字段 例如sectionTitle 为该
  • 从两个相交的多边形创建新的 MKPolygon

    我知道确实有一个具体的问题讨论了这一点 但它有点老了 如果可能的话 我想了解更多技术性的知识 首先看一下这个截图 https www dropbox com s f94q3qaxrog0ec9 intersections png https
  • 快速 Firebase 在异步任务中返回

    我在 swift 2 中遇到了适用于 iOS 的 Firebase SDK 的问题 我正在尝试将图片设置为从 Firebase 存储下载 当我调用该函数时 它返回 nil 我认为这是因为 Firebase sdk 提供的下载任务是异步的 因
  • iOS表单键盘不消失

    我知道我必须打电话 BOOL disablesAutomaticKeyboardDismissal return NO this dismiss keyboard on ios BOOL textViewShouldBeginEditing
  • AVVideoComposition 应用过滤器处理程序不调用

    I want to add an overlay image into a video I use AVVideoComposition and CIFilter to do this but AVAsynchronousCIImageFi
  • 从实时照片中提取视频部分

    有谁知道如何从实时照片中提取视频部分 我正在开发一个将 Live Photos 转换为 GIF 的应用程序 第一步是从 Live Photo 中获取视频文件 看起来这应该是可能的 因为如果你将手机插入 Mac 你就可以看到单独的图像和视频文
  • iOS 4.3 SDK - 在 3G 设备上调试

    目前有关 iOS 4 3 设备支持的信息还很少 然而 由于 iPhone 3G 设备 以及较旧的 iPod touch 设备 缺乏 4 3 Beta 版 许多人认为这可能是旧设备操作系统升级的终结 即使这个假设现在是错误的 但有一天它也不会
  • 快速在视图之间传递数据

    我试图熟悉 Swift 但找不到如何使用 Swift 在视图之间传递数据 class ViewController UIViewController IBOutlet var field UITextField IBOutlet var b
  • 从 NSArray 为 UITableView 创建索引

    我读过创建索引 uitableview 旁边的 a z 的最佳方法是设置一个 nsdictionaries 数组 其中每个字典对应一个部分 并且 rowValue 键包含一个行数组 NSDictionary headerTitle gt A
  • userDidAcceptCloudKitShareWith 未被调用

    func application application UIApplication userDidAcceptCloudKitShareWith cloudKitShareMetadata CKShare Metadata 单击共享 cl
  • iOS 如何以编程方式简单返回到先前呈现/推送的视图控制器?

    如何以编程方式返回到先前的视图控制器 我找到了这个answer https stackoverflow com questions 28760541 programmatically go back to previous viewcont
  • HTML5 Safari iOS 仅访问相机而不访问照片库

  • Swift - 集成 GameCenter 以使用排行榜

    我正在用 Swift 制作一个游戏 我希望能够使用 GameCenter 发布用户的分数 以便可以看到所有用户的分数 然而 我花了一天的时间试图弄清楚如何做到这一点 但我没有找到任何有用的说明 我对 iOS 编程和 Swift 还很陌生 关
  • 我的开发者帐户会员资格到期后,我的应用程序会怎样? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我的 Apple 付费开发者会员资格到期时 我在应用程序商店中现有的应用程序会怎样 我知道我无法添加新应用程序 但我现有的应用程序会保留
  • UISearchController 在调用时更改状态栏颜色

    我的应用程序中有以下代码 特别是在viewDidLoad 这设置了我的UISearchController self searchController UISearchController alloc initWithSearchResul

随机推荐

  • 更改帖子形式

    我的网站上有简单的登录表单 在给定的要求下 该密码不得发送到服务器 而只能发送 MD5 哈希值 我采用了简单的 MD5 函数 现在 当使用 onClick 提交按钮时 我将隐藏文本从密码更改为 md5 密码 这工作正常 但用户看到 他的密码
  • Python:当只有文件名(而不是路径)可用时如何在系统范围内搜索文件

    我对Python还是个新手 使用2 6 当只有文件名可用时 我试图在系统范围内搜索文件 并返回Windows上的绝对路径 我搜索并找到了一些像 scriptutil py 这样的模块 并浏览了 os 模块 但没有找到任何适合我需要的东西 或
  • 将 no-X11 tkinter 与 python 结合使用(通过 macports 安装)

    我已经安装了Python 2 7和一些有用的库 如Python Image Library 通过MacPorts 一切都好 现在 我想使用 Tkinter 问题是该版本使用X11 而且我不想使用X11 如果我切换到Apple安装的pytho
  • Python 文本阴影

    我使用 PIL 在图像上添加了一些文本 我想添加一个文本阴影 具有一定的阴影半径和阴影不透明度 在绘制一些文本之前 我已经能够通过绘制阴影来伪造这一点 它效果不太好 然后将其放置在文本上方一点点 draw text x y 2 text f
  • 从 Python 3.7 conda 环境中在 Spyder 下导入 numpy 时出现 ImportError

    我创建了一个 conda 环境 名为python3在我的 Ubuntu 虚拟机上使用 conda create n python3 python 3 7 我在这个环境下安装了几个包 包括numpy 打字时conda list numpy 显
  • Facebook FQL“like”表最多返回 100 行?

    好的 标题主要说明了一切 我想获得我给人们的喜欢的数量 为此我正在执行如下查询 SELECT object id FROM like WHERE user id me 但是 对于大型帐户 即使我添加 它也总是返回 100LIMIT 1000
  • Jest-Expo 在示例中崩溃(React.createElement:类型无效 - 需要一个字符串)

    我很困惑为什么示例测试没有运行 我在这里使用 Expo Web 和 typescript 我的前端使用运行良好expo start web App tsx const App gt return
  • 将knockout.js observablearray 对象传递给MVC 控制器操作?

    我正在使用 MVC 中的淘汰赛 我试图将可观察的对象数组从淘汰赛传递回我的 MVC 控制器操作以保存到数据库 如果我通过 ko toJSON viewModel ArrayName 将数组从淘汰赛传递到我的控制器操作 它将在我的控制器参数中
  • 将 NaN 值插入 MySQL 数据库

    我有一些数据包含 NULL 浮点数和偶尔的 Nan 我正在尝试使用 python 和 MySqldb 将此数据插入到 MySQL 数据库中 这是插入语句 for row in zip currents voltages row id lis
  • 更改单选按钮名称 javascript 在 IE 中不起作用

    我在 jsp 页面中有一些单选按钮 页面加载后 我运行一个 javascript 方法来查找某些单选按钮并更改其名称 以便它们像单选按钮组一样工作 我这样做是因为单选按钮位于 jsf 表内 并且在编码时我无法访问 name 属性 并且我希望
  • Resharper 7:MSTest 不起作用 - “测试未运行”

    自从我升级到 VS2012 和 Resharper 7 以来 我之前工作的 MS 测试不再运行 测试在 ASP NET 环境中运行 我使用以下属性 TestMethod HostType ASP NET AspNetDevelopmentS
  • 在 Excel 中创建序列列

    我有一列包含名称的列 我想添加一列来根据名称计算每行的序列 因此 如果一个名称出现多次 即 4 次 则该名称的第一行将具有序列 1 第二行将具有序列 2 依此类推 Name Sequence Andrew 1 Andrew 2 Andrew
  • Chef 中的引导问题

    我已经使用 Chef 设置了基本的基础设施 这包括本地厨师服务器 基于 ubuntu 工作站和基于 ubuntu 的服务器 用作节点 请注意 整个基础设施都位于我办公室网络的防火墙后面 我已经为服务器访问互联网做了必要的代理设置 所以这就是
  • QT KernelBase!RaiseException 位于 0x759fc41f

    评论多于问题 下面描述了我今晚遇到的一个问题以及我如何 纠正 它 这些事件需要几个小时的时间才能解决 由于该网站是我最喜欢的信息来源之一 因此认为这篇文章可能对其他人有益 欢迎任何有关诊断 QT Creator 运行时异常的建设性意见 该异
  • 当属性 Visibility 更改时为 StackPanel 制作动画

    在 WPF 3 5 带有 SP1 中 我只是当我更改属性可见性时 我想为 StackPanel 制作动画 我不知道这个 StackPanel 的高度 因为它的内容决定了它的高度 因此 当我将 StackPanel 的属性更改为 Visibl
  • 使用 jQuery .load 函数刷新元素而不重复它

    当用户点击提交按钮时 div forum应该刷新 不刷新页面 然而 由于某种原因 它反而创建了一个新的 div forum在原始 div 中 如下所示 虽然我知道我可以通过在 div 周围添加一个容器来防止这种情况 forum 我想知道是否
  • 使用 NAudio 将流数据保存到 WAV 文件

    我想将传入的流数据保存到硬盘驱动器上的 WAV 文件中 如何更改下面的代码才能将流录制到有效的 WAV 文件中 来自演示here http naudio codeplex com SourceControl changeset view a
  • 收到 icmp 请求,但没有回复 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 如何处理ggplot2中的“data of class uneval”错误?

    在尝试将新行覆盖到现有行时ggplot 我收到以下错误 Error ggplot2 doesn t know how to deal with data of class uneval 我的代码的第一部分工作正常 下图是来自美国中西部电力市
  • AVPlayer 播放 iOS 7 后台通知中的音频

    I have audio fetch and remote notification set in UIBackgroundModes我通过以下方式成功接收了我的应用程序在后台 未激活 的远程通知 void application UIAp