- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从几个小时前就开始尝试解决 AVAudioSession 问题,但没有成功!!
我发现很多人都在谈论 endInterruption 的问题,但没有人谈论这个错误:
Unable to reactivate the audio session after the interruption ended: Error Domain=NSOSStatusErrorDomain Code=560161140 "The operation couldn’t be completed. (OSStatus error 560161140.)"
我尝试将此代码转换为 ASCII 以检查音频代码结果,但没有任何与此数字相关的内容。
我的初始化 session 的代码:
- (void) setupAudioSession {
mySession = [AVAudioSession sharedInstance];
[mySession setDelegate: self];
NSError *audioSessionError = nil;
[mySession setCategory: AVAudioSessionCategoryPlayback error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error setting audio session category: %@", [audioSessionError description]);
return;
}
// Activate the audio session
[mySession setActive: YES error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error activating audio session during initial setup: %@", [audioSessionError description]);
return;
}
// Prepare audio file to play
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *bgSoundURL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"bg_sound" ofType:@"aif"]];
bgPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:bgSoundURL error:&audioSessionError];
if (!bgPlayer) {
NSLog(@"No bgPlayer: %@", [audioSessionError description]);
}
[bgPlayer setNumberOfLoops:-1];
[bgPlayer prepareToPlay];
}
以及endInterruption方法的代码:
- (void) endInterruptionWithFlags: (NSUInteger) flags {
if (flags & AVAudioSessionInterruptionFlags_ShouldResume) {
NSError *endInterruptionError = nil;
[[AVAudioSession sharedInstance] setActive: YES error: &endInterruptionError];
if (endInterruptionError != nil) {
NSLog (@"Unable to reactivate the audio session after the interruption ended: %@", [endInterruptionError description]);
return;
} else {
NSLog (@"Audio session reactivated after interruption.");
if (interruptedWhilePlaying) {
self.interruptedWhilePlaying = NO;
// Resume playback by sending a notification to the controller object, which
// in turn invokes the playOrStop: toggle method.
NSString *MixerHostAudioObjectPlaybackStateDidChangeNotification = @"MixerHostAudioObjectPlaybackStateDidChangeNotification";
[[NSNotificationCenter defaultCenter] postNotificationName: MixerHostAudioObjectPlaybackStateDidChangeNotification object: self];
}
}
}
}
此代码的很大一部分是从 Apple Mixer Host Sample 中提取的。奇怪的是,该示例运行良好!
你们能找出问题所在吗?
谢谢。
最佳答案
我通过改变音频代码的设计方式解决了这个问题。我没有使用 AVAudioSession 及其委托(delegate)方法,而是更改为 C 风格来处理音频。
我实现了这个功能:
void interruptionListenerCallback (void *inUserData, UInt32 interruptionState) {}
它的初始化是:
AudioSessionInitialize (NULL, NULL, interruptionListenerCallback, self);
在我的 -(id) init 方法中。
希望对你也有帮助。最好的。
关于iphone - AVAudioSession endInterruption() 返回 NSOSStatusErrorDomain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5083752/
我在使用获取属性时收到以下错误 AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate,&size,
我从几个小时前就开始尝试解决 AVAudioSession 问题,但没有成功!! 我发现很多人都在谈论 endInterruption 的问题,但没有人谈论这个错误: Unable to reacti
我的旧 sdk 3.0 项目中的代码无法与新 sdk 一起使用。我已经将代码复制到一个非常简单的项目中(只是一个 uivue 项目,我将声音代码放在 onload 中)以确保我所做的任何其他事情都不会
当我尝试使用 AVAssetExport 导出 Assets 时,仅在通过 Whatsapp 接收的视频上可能会出现以下错误。 我找不到可行的解决方案。我还尝试过实现代码来修复视频时长,但我没有修复它
AVAudioPlayer 在某些本地 MP3 文件上出现以下错误: Error Domain=NSOSStatusErrorDomain Code=-54 "(null)" 我正在将 zip 文件
所以我有一个 AVAudioPlayer,有时它工作得很好,但有时它会打印错误“Error Domain=NSOSStatusErrorDomain Code=1954115647”(null)”。这
我正在尝试使用以下代码获取视频缩略图: let asset = AVAsset(URL: url) let imageGenerator = AVAssetImageGenerator(ass
我正在从服务器下载插图、标题和音频数据文件,并能够在表格单元格中显示。 单击表格单元格中的播放按钮时,将音频数据保存到本地文件中,然后尝试从文档文件路径播放。音频未在 AVAudioPlayer 上播
我的问题很简单,我正在尝试使用 Swift 向 Finder 中的某些文件添加标签,但遇到以下错误:Error Domain=NSOSStatusErrorDomain Code=-5000 "afp
我在 iPad iOS 9.3.4(撰写本文时的最新版本)上运行。 我正在运行这段代码: let settings = [ AVFormatIDKey: NSNumber(unsign
我正在使用 AVPlayer 播放在线 mp3 流!当我暂停播放器时 [AVPlayer pause]; AVAudioSession *session = [AVAudioSession share
我们通过 TestFlight 发布的应用目前正在为少数用户遇到崩溃,而且该崩溃很难调查。它发生在 iOS 9 和 9.1 上,我们已经在几款不同的 iPhone 上看到了它。我们已经测试了所有这些设
我在聊天应用程序中使用了AVPlayer,但是在选择的音频文件中出现了休闲错误,但是音频文件在浏览器中正确播放。 Error Domain=AVFoundationErrorDomain Code=-
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
我正在使用 Swift 开发基于视频的应用程序。我在哪里导出带有水印 Logo 和淡入淡出效果的视频剪辑。这是我的代码: func watermark(video videoAsset:AVAsset
我正在使用 Pjsip 开发一个 VoIP 应用程序在 objective-C 中。 我想尝试集成 CallKit,但我在 configureAudioSession 上遇到错误。我从 Speaker
我是一名优秀的程序员,十分优秀!