我正在使用 xcode 10.2.1 开发语音记录应用程序... ...录制音频后,音频将以表格视图显示。在每个单元格内都有一个播放按钮,按下该按钮应切换为暂停。音频播放完毕后,应重新播放。如何迅速实现这一目标?
我在堆栈上尝试了许多答案,但是没有一个满足我的要求。
func btnPlayPressed(index: Int) {
let audio = self.audios[index]
if audio.isPlaying {
AudioManager.sharedInstance.stopSound()
self.audios[index].isPlaying = false
} else {
AudioManager.sharedInstance.playSound(fileName: audio.fileName)
self.audios[index].isPlaying = true
}
}
答案 0 :(得分:0)
您应该使用NSNotificationCenter并在音频播放完毕后收听。在该功能中,您必须更改按钮的图像。您在使用 Caused by: java.lang.NoSuchMethodError: org.jetbrains.kotlin.resolve.diagnostics.DiagnosticSuppressor$Companion.getEP_NAME()Lcom/intellij/openapi/extensions/ExtensionPointName;
at com.android.tools.lint.LintCoreApplicationEnvironment.registerAppExtensionPoints(LintCoreApplicationEnvironment.java:145)
at com.android.tools.lint.LintCoreApplicationEnvironment.createApplicationEnvironment(LintCoreApplicationEnvironment.java:94)
at com.android.tools.lint.LintCoreApplicationEnvironment.get(LintCoreApplicationEnvironment.java:71)
at com.android.tools.lint.LintCliClient.initializeProjects(LintCliClient.java:971)
at com.android.tools.lint.client.api.LintClient.performInitializeProjects$lint_api(LintClient.kt:774)
at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.kt:306)
at com.android.tools.lint.LintCliClient.run(LintCliClient.java:179)
at com.android.tools.lint.gradle.LintGradleClient.run(LintGradleClient.java:254)
at com.skateboard.hecatoncheires.checktools.IncrementLintGradleExecution.runLint(IncrementLintGradleExecution.java:250)
at com.skateboard.hecatoncheires.checktools.IncrementLintGradleExecution.lintAllVariants(IncrementLintGradleExecution.java:391)
at com.skateboard.hecatoncheires.checktools.IncrementLintGradleExecution.analyze(IncrementLintGradleExecution.java:85)
... 59 more
吗?
答案 1 :(得分:0)
您可以扩展AVAudioPlayerDelegate并覆盖下面的功能。然后,此功能将触发您了解音频已结束的情况。
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
print("Finish")
}