- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想播放 NSSound 两次,除非它的时间短于 10 秒,然后我想等到 10 秒完成后再开始第二次。
但是我在播放同一个 NSSound 两次时遇到了问题。
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"MessageArrived" ofType:@"wav"];
NSSound *sound = [[NSSound alloc] initWithContentsOfFile:resourcePath byReference:YES];
[sound play] //It plays the fist time
[sound play] //I get the following Error and it doesn't play a secont time
/*malloc: *** auto malloc[498]: error: GC operation on unregistered thread. Thread registered implicitly. Break on auto_zone_thread_registration_error() to debug.*/
有人可以告诉我这个错误的原因是什么吗?我该如何处理这个问题?
还有其他方法可以做到这一点吗?
最佳答案
因此,经过大量搜索并尝试修复它,我得到了问题的解决方案......
NSSound *sound = [NSSound soundNamed:@"MessageArrived"];
BOOL res = [sound play];
NSLog(@"%d", res);
[NSThread detachNewThreadSelector:@selector(playSecondSound:) toTarget:self withObject:sound];
-(void)playSecondSound:(NSSound*)sound
{
[NSThread sleepForTimeInterval:10-[sound duration]];
[sound stop];
BOOL res = [sound play];
NSLog(@"%d", res);
}
我发现即使声音已经结束,我也必须在开始第二个声音之前调用[声音停止]。
关于objective-c - 播放 NSSound 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9716198/
我在 iOS 上做过一些 Swift 和相当多的 Objective-C,但基本上没有真正的 OS X 编程,所以我没有使用过 NSSound。我试图在 Swift 论坛上帮助某人,但......它不
我一直在寻找如何在 iPhone 上播放声音,我认为它类似于: [[NSSound soundNamed:@"cat.mp3"] play]; 但是 NSSound 在 AppKit 上......有
我正在构建一个应该通知某些事件的应用程序。它有声音通知和 NSView/HUD 通知。 在调试时,我让它运行了几个小时。我注意到几个小时后 8+ NSSound 停止发出声音。 我的代码很简单,并且在
我在 Mac 10.6 上使用 Cocoa。我试图让节拍器敲出时间,但是当我运行代码时,只播放前两个声音,然后直到声音再次播放时才结束。如果我用 NSBeep() 替换 [player play] 语
有时,我的 Cocoa 应用程序在尝试加载系统声音时会崩溃。我自己无法重现此问题,但一些用户向我发送了崩溃报告。 堆栈跟踪始终相同(见下文)。应用程序打开一个模式对话框,用户单击“确定”,声音加载并崩
我需要在函数中插入一段代码,以便在调用时播放声音。 问题在于调用函数的速度快于声音持续时间,因此播放声音的次数少于调用函数的时间。 function keyDownSound(){ NSSoun
我正在尝试在 XCode(在 Swift 中)上制作一个简单的应用程序来播放音频文件,然后无限循环播放。根据Apple's website ,我需要将 var loops: Bool { get se
sound = [[NSSound alloc] initWithContentsOfFile:@"staticbeam09.wav" byReference:YES]; 代码引用自Apple doc
我想播放 NSSound 两次,除非它的时间短于 10 秒,然后我想等到 10 秒完成后再开始第二次。 但是我在播放同一个 NSSound 两次时遇到了问题。 NSString *resourcePa
如标题所示,我试图弄清楚如何计算 NSSound 循环的次数(或者,更准确地说,在开始和/或结束时运行一个函数)每个循环)。我查看了所有文档,但找不到任何内容。任何帮助将不胜感激。 更新:我试过使用
我已经为我的 Mac 编写了一个便宜又欢快的音板,我用 NSSound 播放各种声音,如下所示: -(void)play:(NSSound *)soundEffect:(BOOL)stopIfPlay
我有一些 NSSound 对象,我想将其转换为 AVAudioPlayer 实例。我有与 NSSound 对象关联的文件路径 (NSURL),但原始文件可能不存在。这是我目前所拥有的: class S
我已经基本完成了我的一个应用程序的白噪声功能工作,使用 NSSound 循环播放 10 秒 AAC 编码的预录白噪声。 [sound setLoops: YES] 应该就是所需要的,对吧? 它的工作原
我能够使用 NSSound 快速播放声音: var path ="/path/to/file.mp3" mysound = NSSound(contentsOfFile: path, byRefere
我有一个警报声。我从不希望它“响亮”和令人吃惊,所以我通过 [NSSound setVolume] 将它降低到一个不大声的可听音量。 但好像音量是相对于当前系统音量设置的。因此,如果我在最大系统音量的
如何让音频设备 UID(USB 扬声器)传入 NSSound 的 setPlaybackDeviceIdentifier: 方法 谢谢 最佳答案 为避免不推荐使用的 AudioHardwareGetP
我在将 NSsound 实例添加到 NSMutableArray 中时遇到问题我得到的错误是我无法执行[soundFiles addObject:soundObj],因为soundObj是nil。但如
我正在制作一款需要播放音乐的游戏。为了使我的代码更易于管理,我想制作一个 NSObject 来处理声音(例如淡入淡出、在播放列表中播放声音等)。我有这段代码: NSSound *music = [[N
我是一名优秀的程序员,十分优秀!