Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 斯威夫特:如何将短音播放更长时间_Ios_Swift_Audio_Avaudioplayer - Fatal编程技术网

Ios 斯威夫特:如何将短音播放更长时间

Ios 斯威夫特:如何将短音播放更长时间,ios,swift,audio,avaudioplayer,Ios,Swift,Audio,Avaudioplayer,我正在使用Swift进行一个SpriteKit项目,我想把我的1秒长的声音播放得更长。例如,声音文件是“beep”-我希望将其扩展为类似“beeep”或“beeeep”的内容。我尝试了几个播放声音文件的选项,但我找不到扩展它的方法 目前,我正在使用SKAction播放声音: var beep = SKAction.playSoundFileNamed("beep.caf", waitForCompletion: false) runAction(beep) 有人知道怎么做吗 AVAudioPl

我正在使用Swift进行一个SpriteKit项目,我想把我的1秒长的声音播放得更长。例如,声音文件是“beep”-我希望将其扩展为类似“beeep”或“beeeep”的内容。我尝试了几个播放声音文件的选项,但我找不到扩展它的方法

目前,我正在使用SKAction播放声音:

var beep = SKAction.playSoundFileNamed("beep.caf", waitForCompletion: false)
runAction(beep)

有人知道怎么做吗

AVAudioPlayer
有一个
rate
属性,可以让你以一半到两倍的速度播放。如果一半有效,你可以使用它


如果不起作用,您可以使用
AVComposition
从声音文件创建合成曲目。您可以选择声音文件的某些部分,并将它们按自己喜欢的方式缝合在一起。

AVAudioPlayer
有一个
速率
属性,可让您以一半到两倍的速度播放。如果一半有效,你可以使用它


如果不起作用,您可以使用
AVComposition
从声音文件创建合成曲目。您可以选择声音文件的某些部分,然后将它们缝合在一起。

可能会将
waitForCompletion
设置为true,并将
runAction(beep)
放入循环中。如果您放慢声音的播放速度使其播放更长时间,是否有意义?@M.kazemAkhgary我实际上已经尝试过这种方法,但没有得到正确的结果。输出类似于“哔哔”声。@neo否。减慢声音会改变音高。所以,你会听到“哔哔”声,而不是“哔哔”声。我想如果你把声音的第一部分剪掉。你不会听到“哔哔”声。。。这就是合成器、音序器如何从1秒的音效中产生一个长音效。它们从部分音效材料而不是整个音效中产生一个循环。您可能需要一个程序来完成它。但是,如果它不支持
caf
,您可以将其转换为
wav
,这是一种非常流行的格式,大多数工具都支持wav。可以将
waitForCompletion
设置为true,并将
运行操作(嘟嘟声)
在循环中。如果你放慢声音的速度使其播放更长时间,是否有意义?@M.kazemAkhgary我实际上已经尝试过这种方法,但没有得到正确的结果。输出类似于“哔哔”声。@neo否。减慢声音会改变音高。所以,你会听到“哔哔”声,而不是“哔哔”声。我想如果你把声音的第一部分剪掉。你不会听到“哔哔”声。。。这就是合成器、音序器如何从1秒的音效中产生一个长音效。它们从部分音效材料而不是整个音效中产生一个循环。您可能需要一个程序来完成它。但如果它不支持
caf
,您可以将其转换为
wav
,这是一种非常流行的格式,大多数工具都支持wav。