问题标签 [avaudiosession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1743 浏览

objective-c - 应用程序在后台时中断后恢复执行代码

我花了几天时间在 SO 和其他网站上研究这个问题的答案,但没有任何运气。

从本质上讲,我为自己设定的挑战是为 iOS 创建一个无论用户在哪里(前景或背景)都能发出声音的闹钟应用。我已经通过使用 AVAudioPlayer 实例并在用户设置警报时开始播放空声音文件以使应用程序继续在后台运行来实现这一点。当警报响起时(即当 NSTimer 被触发时),已经启动并准备播放的第二个播放器开始播放用户醒来的铃声。

此外,我还通过实现 AVAudioSessionDelegate 方法 beginInterruption 和 endInterruptionWithFlags 来处理电话、系统计时器或闹钟的中断。它可以在后台和前台模式下工作,但最奇怪的事情发生了:

当中断结束时,AVAudioPlayer 会继续播放,但除非我再次将应用程序置于前台,否则我无法在我的应用程序中执行任何其他代码。

为了深入了解这一点,我尝试了一个更简单的项目,我将在下面发布。这个应用程序所做的是,一旦您进入应用程序,AVAudioPlayer 类的一个实例就会开始循环播放某种声音。然后当你把它带到后台时,播放器会继续循环播放声音。当发生中断时,我暂停播放器,当它结束时,我使用调度等待几秒钟,然后它调用两个方法,即 (void)playPlayer,一个包含恢复播放文件的代码的方法和 (void)tester ,一种包含计时器的方法,该计时器设置为在中断结束后 5 秒(或准确地说是 7 秒)停止播放器。这两种方法都被调用,正如我在它们中放入的 NSLogs 所示,但计时器永远不会被触发,玩家会继续无限期地玩。

这是 .h 文件的代码:

这是 .m 文件的代码:

所以,这就是伙计们。同样,为什么在应用程序处于后台时中断后计时器没有被触发?我需要在 applicationDidEnterBackground 方法中设置一些东西吗?

非常感谢您!

0 投票
4 回答
3954 浏览

iphone - 检查iphone中的网络可达性后应用程序崩溃?

我有一个 mpmovieplayercontroller 播放在线音乐和 avaudiosession 在后台播放相同的音乐,当第一次应用程序在没有网络访问的情况下启动时,通常我显示“没有互联网连接”,当我尝试连接到互联网并播放它后显示错误

我的代码在这里

连接到互联网后点击播放按钮时应用程序崩溃,有什么解决办法吗?

0 投票
1 回答
1650 浏览

avaudiorecorder - 长时间录制一个小时左右,如何减少avaudio录制文件?

问题描述:当我以大约 1 小时的时间间隔录制音频文件时,我得到它的大小约为 600MB,所以它太大了,我希望它应该被压缩到更小的大小,但我怎么不知道....?进行压缩的原因是,当我将其转换为 NSData 时,保存该文件需要花费大量时间。所以请任何帮助或指导我如何解决这个问题.....:(

任何建议都应该非常感激......!

提前致谢.....!

0 投票
2 回答
1223 浏览

iphone - MPMoviePlayerController 导致所有其他音频变软(MP 完成后)

我有一个播放一些背景音乐的应用程序,当按下某个按钮时,它会使用导航控制器推送一个新视图。这个新视图有一个 MPMoviePlayerController 和一个带有共享 AudioSession 的 AVCaptureSession。关闭该视图后,与之前相比,背景中的声音确实很柔和。是什么原因导致播放后音量如此低?

0 投票
3 回答
1952 浏览

ios - 静音播放 Http Live Streaming 视频的 AVPlayer

我想知道是否可以使AVPlayer播放HTTP Live Streaming 视频的声音静音?

我已经尝试了几件事,比如设置此处解释的AVPlayer 音量的 Apple 方法,但它仅适用于本地文件......(参见 Apple 文档底部的注释)。

这篇文章中解释的类似方法也不起作用。

有解决办法吗?我真的不想让设备的声音静音,但只有一个视频,而其他播放器可以拥有自己的音频(用户可以平衡播放器之间的音频)。

提前致谢。

0 投票
2 回答
2412 浏览

ios - 如何解决 iOS 中的 AVCaptureSession v AVAudioSession 冲突?

我正在尝试在视图控制器中运行 AVCaptureSession,但在同一时间内,我还从使用 AVAudioSession 的库中调用了一个函数。我似乎无法从调试器中获得太多信息,除了它在我调用这个特定库的函数时完全崩溃。该库是 libpd:

https://github.com/libpd

并将 AVAudioSession 称为 sharedInstance。我称 libpd 为:

所以启用了混合,但以防万一,我重新编译了它,以便在它初始化时,我这样做:

但是,没有运气。将 libpd 的调用移动到视图控制器中的 viewWillAppear 也不起作用。但是,如果我将调用 libpd 的代码从我的视图控制器中取出,并将其放入 didFinishLaunchingWithOptions 内的应用程序委托中,它就会启动得很好,并且这两个会话似乎可以共存而不会崩溃。

我错过了一些关于 AVCaptureSession 和混合的东西吗?如何让两个会话共存?我没有使用 AVCapture 来捕获音频,只有相机输入,所以我不应该能够以某种方式同时进行吗?

0 投票
1 回答
425 浏览

ios - AVAudioSession - 似乎认为我一直在播放音频

我在我的 iOS 应用程序中使用背景音频。当应用程序启动时,没有音频播放,但状态栏显示播放图标,遥控器上显示暂停按钮。该应用程序似乎认为我已经在播放音频。

viewDidLoad

viewWillAppear

任何想法为什么iOS认为我正在播放音频?我怎样才能解决这个问题?

我可以毫无问题地接收远程事件。

0 投票
1 回答
1490 浏览

ios - 使用 AVAudioRecorder 和 AVAudioSessionCategoryPlayAndRecord 忽略麦克风输入

我正在开发一个带有多个 AVAudioPlayer 和一个 AVAudioRecorder 的 iPad 应用程序。这个想法是像背景音乐一样播放主要 AvAudioPlayer 的声音,并触摸不同的按钮播放其他 AVAudioPlayer 的声音以与背景音乐混合。混合音乐将由 AVAudioRecorder 录制。

为此,我使用 AVAudioSessionCategoryPlayAndRecord 类别实现了 AVAudioSession,并使用以下设置创建了 AVAudioRecorder 对象:

一切正常,但麦克风的输入也被记录了,这对我来说不好。

问题是,我如何在录音过程中忽略/替换/消除麦克风输入?

我在谷歌上搜索了很长时间,并在 Apple 文档中搜索 AVAudioSession 类别和模式、AVAudioRecorder 设置,但对我没有任何帮助。

我也搜索静音麦克风,但我读到这在 iOS 设备上是不可能的。

提前感谢您的帮助,并为我写英语的错误感到抱歉。

0 投票
2 回答
3542 浏览

objective-c - 启用静音开关时如何在 iOS 上播放声音

可能重复:
即使在静音模式下也能在 iPhone 上播放声音

我正在尝试播放短声音(表示计时器完成)并将其实现为系统声音。由于我的应用程序是一个计时器,因此即使启用了静音开关,我也希望声音可以听到。

我尝试将音频会话类别更改为“AVAudioSessionCategoryPlayback”,但这没有用。在那儿

0 投票
2 回答
4980 浏览

objective-c - 接收没有音频的远程控制事件

这是一些背景信息,否则请跳至粗体问题。我正在构建一个应用程序,我希望它能够访问远程控制/锁定屏幕事件。棘手的部分是这个应用程序本身不播放音频,它控制附近另一台设备的音频。当应用程序在前台时,设备之间的通信不是问题。正如我刚刚发现的那样,一个应用程序在通过播放音频会话播放音频之前不会控制遥控器,并且是最后一次这样做。这带来了一个问题,因为就像我说的那样,该应用程序控制另一个设备的音频并且不需要播放自己的音频。

我的第一个倾向是让应用程序在每次打开时播放一个静音剪辑,以便控制遥控器。我必须这样做的事实让我想知道 Apple 是否会允许我这样做,或者是否有其他方法可以在不使用假音频剪辑欺骗系统的情况下实现这一点。

问题(S):Apple 是否会批准播放无声音频剪辑的应用程序,以控制远程/锁定屏幕控件以控制其他设备的音频?有没有办法在没有音频会话的情况下控制遥控器?

PS 我希望在 iOS 4.0 及更高版本上拥有此功能。

PPS 我看到了这个类似的问题,它让我头脑风暴,但提供的答案并不特定于我需要知道的内容。