- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个音频应用程序,我希望音频在屏幕关闭时继续播放。(它在屏幕打开时在后台运行良好。)
在 xcode 上启用了后台模式(我在 Info.plist 中设置了“音频”值。)并且我实现了“AVAudioSession.sharedInstance”,但是当我的设备屏幕关闭时应用程序崩溃了。有解决这个问题的想法吗?
完整代码如下
var player:AVAudioPlayer!
init(withStartingClosure block1:@escaping(_ dict:[String:Any],_ index:Int) -> Void,andStopingClosure block2:@escaping(_ index:Int) -> Void,finishedAllClosure block3:((_ finished:Bool) -> Void)? = nil) {
self.didStartPlaying = block1
self.didStopPlaying = block2
self.didFinishPlaying = block3
}
deinit {
self.mode = .stopped
}
}
extension AudioPlayer {
func getURL(ofAudio name:String) -> URL {
let url = URL(string: name)!
let nm = url.deletingPathExtension().absoluteString
let type = url.pathExtension
let path = Bundle.main.url(forResource: nm, withExtension: type)!
return path
}
func setupPlayer(withData data:[String:Any]){
let name = data["audio"] as! String
var idx = self.currentIndex - 1
if idx < -1 {
idx = -1
}
print("\nCurrentIndex = \(idx),and Audio is = \(data)")
let path = self.getURL(ofAudio: name)
do {
try self.setupAudioSession()
self.player = try AVAudioPlayer(contentsOf: path)
self.player.delegate = self
if self.player.prepareToPlay() == true {
self.player.play()
self.didStartPlaying?(data, idx)
}else{
print("----------Can't Play \(data)")
}
}
catch {
print(error.localizedDescription)
let alert = UIAlertView(title: "Error!", message: error.localizedDescription, delegate: nil, cancelButtonTitle: "OK")
alert.show()
}
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryPlayback)
} catch {
fatalError("error1")
}
do {
try session.setActive(true)
} catch {
fatalError("sessionError")
}
}
我收到的错误。由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]
func reloadCell(AtIndexPath indexPath:IndexPath,shouldStop value:Int = 0){
//"value" is default value.
// if it is 1. it means stop playing animation of this TableViewCell
let cell = self.table.cellForRow(at: indexPath)
self.configureCell(cell, atIndexPath: indexPath, shouldStop: value)
//This is the code which get crash
self.table.scrollToRow(at: indexPath, at: .bottom, animated: true)
}
最佳答案
NSRangeException。这意味着您正在调用一个单元格 - TableView 中不存在的索引路径。
关于ios - AVAudioSession.sharedInstance 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43013475/
我正在 XCode 6 中测试我的应用程序,并发现 iOS8 中的 AVAudioSession 存在问题。 当我打电话时 [[AVAudioSession sharedInstance] setAc
在我的相机 View Controller 的 viewWillAppear 方法中,我将 Audio Session 的类别设置为录制并将其设置为事件状态。在其 viewWillDisappear
如果 iPhone 连接了多个输入和输出附件,我希望用户能够手动选择输入和输出源。我可以通过查询 [[AVAudioSession sharedInstance] availableInputs] 手
我正在编写一个播放背景音乐的应用程序,为此我使用 AVAudioSession ,如下所示: [[AVAudioSession sharedInstance] setCategory:AVAudioS
我使用 AVSoundSession 来配置声音,并使用 AVAudioPlayer 来播放不同的声音。我搜索了很多,但没有找到任何东西。如何操作输出源? 我的 SoundManager 中需要一个方
我有一个可以显示视频的应用,我想要以下行为。 当视频首次出现在屏幕上并开始播放时,它的音频应该与可能已经在播放的其他应用的音频混合在一起。例如,如果用户正在收听 Spotify,他们应该听到来自 Sp
在我的 iOS 应用程序中,我正在像这样注册到 AVAudioSession 中断通知 [[NSNotificationCenter defaultCenter] addObserver:self s
我知道关于 AVAudioSession 也有类似的问题,但我的有点不同。我有 AVAudioSession 中断的问题。 拒绝通话后,它会恢复,但它只保存中断后录制的部分 - 通话前的部分就消失了。
我正在使用 AVAudioSession 来收听语音输入。它适用于有线耳机,但不适用于连接的蓝牙设备。以下是我用来设置蓝牙麦克风输入的代码 func setupSessionForRecording(
对于我正在制作的应用程序的一部分,我需要录制用户的音频。我已选择使用 AVAudioRecorder 来执行此操作。 问题是当我开始录制音频时,设备上播放的所有音频都暂停了。然后,我查看了 AVAud
我正在尝试在我的 Swift SpriteKit 应用程序中使用 AVAudioSession。我遇到了奇怪的“未声明类型”问题。例如…… import AVFoundation var audioS
我有一个应用程序使用 AVAudioSession 和 AVAudioSessionCategoryPlayAndRecord 来捕获麦克风输入。我正在寻找将高通(可能还有其他)滤波器应用于捕获的音频
我试图在通话期间模仿电话应用程序中的行为。您可以轻松地将输出源从/切换到扬声器或耳机。我知道当通过调用连接耳机时我可以强制扬声器作为输出: try! audioSession.setCategory(
我收到以下错误,但不知道是什么原因造成的。 Aug 4 15:04:56 MyiPad myApp[1523] : 15:04:56.072 ERROR: [0x78ba000] AVAudioSes
我在蓝牙播放方面遇到问题,但仅限于某些蓝牙设备。其他应用程序在这些相同的蓝牙设备上运行良好。我为 AVAudioSession 设置类别的方式是否遗漏了什么? let session = AV
嘿,下面是这段代码。我只是想得到它,以便如果他们是任何音乐、播客等正在从操作系统内的另一个应用程序播放,所有声音都会被静音。但是我已经尝试设置它的类别,但它不起作用!我没有使用正确的类别吗?也许不在正
在 iOS 中,我试图在播放某些音效时隐藏音乐应用程序的音乐。如果您不知道,“闪避”只是指在播放我的声音之前音乐音量降低一点,然后播放声音,然后音乐音量恢复到初始音量。 对于回避,我将 AVAudio
我想配置 AVAudioSession 以便我可以录制带音频的视频并播放音乐应用程序(或任何其他产生声音的应用程序,通常是互联网 radio 应用程序)中的音乐 我这样配置 session : try
我正在使用以下代码来检测可用的输出,但它没有接收到我连接的蓝牙设备。我知道我的蓝牙设备已正确连接,因为我正在用它播放音乐。 let session = AVAudioSession.sharedIns
我收到以下错误: [0x19bf89310] AVAudioSession.mm:646: -[AVAudioSession setActive:withOptions:error:]: Deacti
我是一名优秀的程序员,十分优秀!