当前位置: 首页 > 知识库问答 >
问题:

#AudioKit播放序列器audios mp3

钱远
2023-03-14

我正在尝试用AudioKit库播放音频mp3列表。我读过关于序列器的文章,我看到了官方AudioKit文档示例中的所有代码。调用sequencer.play()方法后,没有任何声音。

  var audios:[String] = [
         "/Users/rubenpalma/Documents/mp3/hola.mp3",
         "/Users/rubenpalma/Documents/mp3/prueba.mp3",
         "/Users/rubenpalma/Documents/mp3/mundo.mp3",
         "/Users/rubenpalma/Documents/mp3/test.mp3",
         "/Users/rubenpalma/Documents/mp3/hi.mp3",
         "/Users/rubenpalma/Documents/mp3/adios.mp3"
         ]


        var path = playAudios(background: back, audiosPath: audios)

func playAudios(background:String,audiosPath:[String]) -> String {

    var durationBackground = 0.00
    let midi = AKMIDI()
    let sequencer = AKSequencer()
    let mixer = AKMixer()
    do{
        var i = 0
        for path in audiosPath {
            let fileAudioURL = NSURL(fileURLWithPath: path)
            if let audio = try? AKAudioFile(forReading: fileAudioURL as URL) {
                print("\(path) size:\(audio.duration)")
                let sampler = AKMIDISampler()
                try sampler.loadAudioFile(audio)
                sampler.enableMIDI(midi.client, name: "Sampler_\(i)")

                mixer.connect(input: sampler)

                let track = sequencer.newTrack("t_\(i)")
                track?.setMIDIOutput(sampler.midiIn)
                track?.add(noteNumber: MIDINoteNumber(i), velocity: 127, position: AKDuration(beats:Double(0)), duration: AKDuration(beats:audio.duration*2), channel:1)
                print("is empty? \(track!.isEmpty)")

                durationBackground += audio.duration
                i += 1
            }
        }
        AudioKit.output = mixer
        try AudioKit.start()
        sequencer.play()

        print("playing.. \(sequencer.isPlaying) ")
    }catch{
        print("Unexpected non-vending-machine-related error: \(error)")
    }
    return "duration  \(durationBackground)"
}

共有1个答案

贺宏富
2023-03-14

AKSequencer是播放midi文件。要播放MP3文件,可以使用AKPlayer http://audiokit.io/docs/classes/AKPlayer.html

 类似资料:
  • (o)在特定位置播放低音: 我的问题是:如何能够使用而不是使用默认的工具(如本例中的)在特定位置播放本地声音文件?

  • 我想播放一首特定的歌曲取决于发送的参数。 在我的项目中,我有不同的播放列表,所以我想发送参数(它是一个数字,对应一个播放列表),然后只听那个播放列表中的歌曲。有什么想法可以这样做吗?提前道谢!

  • 由于小程序里只能使用小程序提供的video组件,所以Mudu.Room.Player仅提供了对用户播放时长的统计功能。 只需要在小程序的事件处理中执行相应函数即可。 video组件bindplay时调用 Mudu.Room.Player.OnPlay() video组件bindpause时调用 Mudu.Room.Player.OnPause() video组件bindended时调用 Mud

  • Mudu.Player 播放器组件(muduPlayer 新版) 升级提示 在 初始化播放器 和使用 player.load() 方法时新增isLive参数(默认为false) 该参数用于控制播放器的ui展示,当为false时 显示进度条 和 时间进度 ;当为true时 隐藏进度信息 并 显示为直播状态 初始化播放器 var isChannelLiving = !!Mudu.Room.GetLiv

  • 我已经创建了一个非常简单和基本的html5音频播放器,实际上不超过: 但我面临两个问题,这个简单的音频标签在Chrome上可以使用,但在Safari 7上不行;第二个问题是,它不能在我的iPhone iOS7和HTC Android 2.3上使用

  • AudioKit 是一个开源的强大的音频合成、处理和分析库。用于 iPhone/OS X 应用的开发,支持 Objective-C 和 Swift 语言。 示例代码: #import "NewInstrument.h"@implementation NewInstrument- (instancetype)init{    self = [super init];    if (self) {