Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Swift中阵列的所有音频文件的总持续时间_Swift - Fatal编程技术网

Swift中阵列的所有音频文件的总持续时间

Swift中阵列的所有音频文件的总持续时间,swift,Swift,如何在Swift 3/4中获取阵列中所有音频文件的总持续时间? [“A”、“x”、“B”、“y”、“C”、“x”、“D”、“y”] 到岸价。以秒为单位的持续时间: x:1s y:1s A:5s B:10s C:20秒 D:25秒 因此,上述阵列的总持续时间为64秒 该数组可以通过分段控制(f.i.:重复“x”2次和“y”3次)通过用户选择进行变异: [“A”、“x”、“x”、“B”、“y”、“y”、“y”、“C”、“x”、“x”、“D”、“y”、“y”、“y”] 是否有可能通过列表从音频文件中获

如何在Swift 3/4中获取阵列中所有音频文件的总持续时间?
[“A”、“x”、“B”、“y”、“C”、“x”、“D”、“y”]

到岸价。以秒为单位的持续时间:
x:1s
y:1s
A:5s
B:10s
C:20秒
D:25秒

因此,上述阵列的总持续时间为64秒

该数组可以通过分段控制(f.i.:重复“x”2次和“y”3次)通过用户选择进行变异:
[“A”、“x”、“x”、“B”、“y”、“y”、“y”、“C”、“x”、“x”、“D”、“y”、“y”、“y”]

是否有可能通过列表从音频文件中获取总持续时间,或者是否有使用AVFoundation的函数/方法或其他方法的解决方案

每个音频文件的持续时间(以秒为单位)都是已知的,并在列表中给出。

如果持续时间的“列表”是一个由say Int值组成的数组(例如,以秒为单位),则可以这样减少(求和)数组的内容

let durations = [1, 2, 3, 4]
let durationsSum = durations.reduce(0, { x, y in
    x + y
 })

您可以从URL创建
AVAsset
实例,将对象映射到它们的
持续时间
,并将其相加。x、y、A、B、C、D是数字还是它们的末尾有
s
?数组中的对象是什么?您的示例是字符串。那些是文件名吗?如果是这样的话,它们是什么类型的声音文件,你是如何加载和播放它们的?@Duncan C你的例子是字符串。那些是文件名吗?对它们是什么类型的声音文件?m4a。你是如何加载和播放它们的?AVAudioPlayer@vadian听起来很简单,但我该怎么做呢。特别是如何从URL创建AVAsset实例并将对象映射到其持续时间?或者
durationSum=durations.reduce(0,+)