- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设法通过 Core Audio 和 Swift 构建并使用了简单的音频图,但我找不到使用矩阵混音器的正确方法。当我尝试设置元素的数量时,程序似乎进入了一个无限循环,最终使用了大量内存并且永远不会回来。
这可能与 discussed here 不太一样.
重现该行为的最简单代码如下:
var graph = AUGraph()
var filePlayerAU = AudioUnit()
var mixerAU = AudioUnit()
var outputAU = AudioUnit()
NewAUGraph(&graph)
// Add file player node
var filePlayerNode = AUNode()
var filePlayerDesc = AudioComponentDescription(componentType: OSType(kAudioUnitType_Generator),
componentSubType: OSType(kAudioUnitSubType_AudioFilePlayer),
componentManufacturer: OSType(kAudioUnitManufacturer_Apple),
componentFlags: 0, componentFlagsMask: 0)
CheckResult("Adding file player node", status: AUGraphAddNode(graph, &filePlayerDesc, &filePlayerNode))
// Add matrix mixer node
var mixerNode = AUNode()
var mixerDesc = AudioComponentDescription(componentType: OSType(kAudioUnitType_Mixer),
componentSubType: OSType(kAudioUnitSubType_MatrixMixer),
componentManufacturer: OSType(kAudioUnitManufacturer_Apple),
componentFlags: 0, componentFlagsMask: 0)
CheckResult("Adding matrix mixer node", status: AUGraphAddNode(graph, &mixerDesc, &mixerNode))
// Add output node
var outputNode = AUNode()
var outputDesc = AudioComponentDescription(componentType: OSType(kAudioUnitType_Output),
componentSubType: OSType(kAudioUnitSubType_RemoteIO),
componentManufacturer: OSType(kAudioUnitManufacturer_Apple),
componentFlags: 0, componentFlagsMask: 0)
CheckResult("Adding output node", status: AUGraphAddNode(graph, &outputDesc, &outputNode))
// Graph must be opened before we can get node info, i.e. the Audio Units
CheckResult("Opening graph", status: AUGraphOpen(graph))
CheckResult("Getting file player node info", status: AUGraphNodeInfo(graph, filePlayerNode, nil, &filePlayerAU))
CheckResult("Getting mixer node info", status: AUGraphNodeInfo(graph, mixerNode, nil, &mixerAU))
CheckResult("Getting output node info", status: AUGraphNodeInfo(graph, outputNode, nil, &outputAU))
var outputBusNumber: AudioUnitParameterValue = 1
var propSize = UInt32(sizeof(AudioUnitParameterValue))
// Setting default parameters for the mixer unit
CheckResult("Setting mixer output elements count", status: AudioUnitSetProperty(mixerAU, AudioUnitPropertyID(kAudioUnitProperty_ElementCount), OSType(kAudioUnitScope_Output), 0, &outputBusNumber, propSize))
当执行最后一行时,程序挂起并且内存使用量达到顶峰。我先尝试连接图表,但没有任何区别。关于应该如何完成的任何提示?
CheckResult 函数在此处可用:
func CheckResult(msg:String, status:OSStatus) {
print(msg + ": ")
switch(Int(status)) {
case 0:
println("OK")
// AudioToolbox
case kAUGraphErr_NodeNotFound:
println("Error:kAUGraphErr_NodeNotFound")
case kAUGraphErr_OutputNodeErr:
println("Error:kAUGraphErr_OutputNodeErr")
case kAUGraphErr_InvalidConnection:
println("Error:kAUGraphErr_InvalidConnection")
case kAUGraphErr_CannotDoInCurrentContext:
println("Error:kAUGraphErr_CannotDoInCurrentContext")
case kAUGraphErr_InvalidAudioUnit:
println("Error:kAUGraphErr_InvalidAudioUnit")
case kAudioToolboxErr_InvalidSequenceType :
println("kAudioToolboxErr_InvalidSequenceType")
case kAudioToolboxErr_TrackIndexError :
println("kAudioToolboxErr_TrackIndexError")
case kAudioToolboxErr_TrackNotFound :
println("kAudioToolboxErr_TrackNotFound")
case kAudioToolboxErr_EndOfTrack :
println("kAudioToolboxErr_EndOfTrack")
case kAudioToolboxErr_StartOfTrack :
println("kAudioToolboxErr_StartOfTrack")
case kAudioToolboxErr_IllegalTrackDestination :
println("kAudioToolboxErr_IllegalTrackDestination")
case kAudioToolboxErr_NoSequence :
println("kAudioToolboxErr_NoSequence")
case kAudioToolboxErr_InvalidEventType :
println("kAudioToolboxErr_InvalidEventType")
case kAudioToolboxErr_InvalidPlayerState :
println("kAudioToolboxErr_InvalidPlayerState")
case kAudioUnitErr_InvalidProperty :
println("kAudioUnitErr_InvalidProperty")
case kAudioUnitErr_InvalidParameter :
println("kAudioUnitErr_InvalidParameter")
case kAudioUnitErr_InvalidElement :
println("kAudioUnitErr_InvalidElement")
case kAudioUnitErr_NoConnection :
println("kAudioUnitErr_NoConnection")
case kAudioUnitErr_FailedInitialization :
println("kAudioUnitErr_FailedInitialization")
case kAudioUnitErr_TooManyFramesToProcess :
println("kAudioUnitErr_TooManyFramesToProcess")
case kAudioUnitErr_InvalidFile :
println("kAudioUnitErr_InvalidFile")
case kAudioUnitErr_FormatNotSupported :
println("kAudioUnitErr_FormatNotSupported")
case kAudioUnitErr_Uninitialized :
println("kAudioUnitErr_Uninitialized")
case kAudioUnitErr_InvalidScope :
println("kAudioUnitErr_InvalidScope")
case kAudioUnitErr_PropertyNotWritable :
println("kAudioUnitErr_PropertyNotWritable")
case kAudioUnitErr_InvalidPropertyValue :
println("kAudioUnitErr_InvalidPropertyValue")
case kAudioUnitErr_PropertyNotInUse :
println("kAudioUnitErr_PropertyNotInUse")
case kAudioUnitErr_Initialized :
println("kAudioUnitErr_Initialized")
case kAudioUnitErr_InvalidOfflineRender :
println("kAudioUnitErr_InvalidOfflineRender")
case kAudioUnitErr_Unauthorized :
println("kAudioUnitErr_Unauthorized")
case kAudioFileUnspecifiedError:
println("kAudioFileUnspecifiedError")
case kAudioFileUnsupportedFileTypeError:
println("kAudioFileUnsupportedFileTypeError")
case kAudioFileUnsupportedDataFormatError:
println("kAudioFileUnsupportedDataFormatError")
case kAudioFileUnsupportedPropertyError:
println("kAudioFileUnsupportedPropertyError")
case kAudioFileBadPropertySizeError:
println("kAudioFileBadPropertySizeError")
case kAudioFilePermissionsError:
println("kAudioFilePermissionsError")
case kAudioFileNotOptimizedError:
println("kAudioFileNotOptimizedError")
case kAudioFileInvalidChunkError:
println("kAudioFileInvalidChunkError")
case kAudioFileDoesNotAllow64BitDataSizeError:
println("kAudioFileDoesNotAllow64BitDataSizeError")
case kAudioFileInvalidPacketOffsetError:
println("kAudioFileInvalidPacketOffsetError")
case kAudioFileInvalidFileError:
println("kAudioFileInvalidFileError")
case kAudioFileOperationNotSupportedError:
println("kAudioFileOperationNotSupportedError")
case kAudioFileNotOpenError:
println("kAudioFileNotOpenError")
case kAudioFileEndOfFileError:
println("kAudioFileEndOfFileError")
case kAudioFilePositionError:
println("kAudioFilePositionError")
case kAudioFileFileNotFoundError:
println("kAudioFileFileNotFoundError")
default:
println("huh? (OSStatus: \(status))")
}
}
最佳答案
原来问题出在 AudioUnitParameterValue 的使用上,它应该只与 AudioUnitSetParameter 一起使用。
一旦类型更改为 UInt32,问题就消失了。
非常感谢 Apple 开发论坛中的 OOper 指出了我的愚蠢错误。
关于ios - Core Audio Matrix Mixer 在设置输入或输出元素数量时卡住并滥用内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28664400/
pygame.mixer init 和 pygame.mixer pre init 有什么区别?我看了一个教程,他用的是pre-init,但是解释的不是很清楚。我应该只使用 mixer init,还是
即使在空白程序中,如果我键入代码行, pygame.mixer.init() PyCharm 抛出错误, NotImplementedError: mixer module not availab
我正在尝试使用Python制作自己的音乐播放器,并且在研究了其他选择之后,我决定使用pygame的mixer.music实际播放音频。 (我以前使用过pygame,通常是在实际游戏中使用),而我一直在
我正在尝试使用“cabal install sdl-mixer”来安装 SDL-mixer haskell 软件包。当我这样做时,它给出了错误 Resolving dependencies... [1
我有一个支持 Istio 的 EKS 集群,但我的节点经常出现磁盘空间不足的情况。 计算总体磁盘使用情况后,我找到了 istio-mixer 容器,该容器的日志文件仅在 12 天内就使用了超过 50G
我正在尝试为 friend 制作一个小程序,它需要运行一个 .wav 文件当我在 python 中运行它时它工作正常但是当我在 py2exe 中编译它时它给了我这个 --> phone.exe:23:
使用 pygame 混音器,我打开一个音频文件并对其进行操作。我找不到将“声音对象”保存到磁盘上的本地文件的方法。 sound_file = "output.mp3" sound = pygame
当我尝试运行以下代码时,我没有收到任何错误或声音。声音文件没有损坏,我也尝试了许多其他声音文件。 import pygame pygame.mixer.init(44100, -16, 2, 2048
我使用了以前的堆栈溢出帖子来帮助我开发以下代码: import os import pygame from pygame import * import sys GAME_FOLDER = os.pa
我想为我的神经科学研究生成一系列特定频率和持续时间的音频提示。经过一番谷歌搜索,我发现一个名为 Pygame 的 Python 模块似乎能够完成这项工作。 sound = pygame.sndarra
我几乎已经完成了我的示例游戏,这是我的回避游戏,设置完毕,无论有没有背景音乐,游戏都运行得很好,但是,当我尝试添加游戏结束声音时,python 提示以下错误 Traceback (most recen
我一直在使用 pygame.mixer 开发一个与声音相关的 Pygame 项目,但我遇到了一个似乎无法解决的问题。我无法打开我尝试过的任何声音文件(.mp3 和 .midi)。 我在 PyCharm
我有俄语 Windows 7,其中一些设备以俄语命名。如果我通过 AudioSystem.getMixerInfo() 获得诸如混音器之类的设备,我会将 Mixer.Info.getName() 错误
我创建了以下使用 pygame.mixer 播放 mp3 音乐的代码。但是,音乐不会重复。关于如何使音乐重复播放的任何想法?这是代码: playlist = list() playlist.appen
我试图让 Java 在两个输出(正面和背面音频插孔)中播放不同的立体声音频。 我的声卡配置为独立处理两个输出,在 Windows 混音器中我可以让它们分别发出测试声音,所以这不是卡问题。 我在 Cha
所以我有一个将我的 .wav 文件加载到内存中的存档,我正在尝试从 void* 或内存中的句柄播放 .WAV。 II 不能在目录中包含所有 .wav 文件,我有一个将它们加载到内存中的函数。 这是我正
我正在尝试寻找支持麦克风耳机插孔的特定混音器。请让我知道我的代码中做错了什么。我不完全明白我需要做什么。 Mixer.Info[] mixerInfo = AudioSystem.getMix
我正在用 pygame 制作贪吃蛇游戏,我想了解一些关于 pygame.mixer.music() 的知识。 代码: snakebodypos.insert(0, list(snakepos)) if
如何使用pygame选择某首歌曲进行播放?我将它们放入列表中,但以下代码不起作用。当我运行该应用程序时,它打印“无”,当我取消对 pygame.mixer.music.play 的注释时,该应用程序给
这个问题已经有答案了: How do I schedule an audio file to play automatically in pygame after the first song end
我是一名优秀的程序员,十分优秀!