小编Mr_*_*r_P的帖子

使用 Audiokit 在 AKsequencer 中创建额外 MIDI 轨道的问题

我一直试图解决一个神秘的正弦波问题,但收效甚微。我在这里开始一个新问题,因为我认为我已经深入研究了这个问题的细节。

当设置 AKSequencer 并向其提供 MIDI 文件时,我看到一些奇怪的结果。

对于 4 轨歌曲(具有相应的 4 轨 midi 文件,持续时间与歌曲的所有主干匹配),我发现音序器实际上是使用 5 条轨道生成的。额外的轨道是什么?

另外,我在控制台中收到错误:

[seq] 1026: Invalid beat range

我相信当赛道是空的时候就会发生这种情况。

所以这看起来像是我神秘的正弦波的罪魁祸首。

关于如何解决这个问题有什么想法吗?这让我有点疯狂......

谢谢!

audio midi ios swift audiokit

5
推荐指数
1
解决办法
635
查看次数

使用Audiokit即时创建MIDI文件

我目前正在使用以下方法来播放歌曲中的词干:

  1. 将stem_01.mp3加载到AKAudioFile中
  2. 将AKAudioFile添加到AKMIDISampler
  3. 将AKMIDISampler添加到AKMixer
  4. 重复1-3以增加茎数
  5. 使用自定义MIDI文件创建AKSequencer:此MIDI文件为歌曲中的每个词干都有单独的轨道。在MIDI文件中(在C3上),每个音轨上都有一个音符,持续整个歌曲。
  6. 我为每个词干向AKSequencer添加了一个新轨道,并使用音序器控制词干的播放

我的问题是:有没有办法自动创建此MIDI文件。我知道词根的数量和歌曲的持续时间;如何动态创建Audiokit启用AKSequencer所需的MIDI文件?

任何关于此的想法或想法都非常受欢迎,因为在添加新歌曲时,它将节省大量的手工工作。谢谢!

midi ios swift audiokit

5
推荐指数
0
解决办法
225
查看次数

如何有效且明确地停止 AudioKit 输入和输出?

我一直在使用Audiokit.stop(),效果不错,还有一些我现在想解决的小问题。随着最近对 Audiokit 4.2 的更新,我现在从以下代码中收到(非常有用的)错误消息:

do {
  try AudioKit.stop()
} catch {
  AKLog("AudioKit did not stop!")
}
Run Code Online (Sandbox Code Playgroud)

我的错误代码是这样的:

2018-04-24 16:14:48.099606+0100 MyProject[517:62626] [avas] AVAudioSession.mm:1142:
-[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has 
running I/O. All I/O should be stopped or paused prior to deactivating the audio session.
AudioKit.swift:stop():299:couldn't stop session 
Error Domain=NSOSStatusErrorDomain Code=560030580 "(null)"
GameScene.swift:update:755:AudioKit did not stop!
Run Code Online (Sandbox Code Playgroud)

所以我的问题是 - 如何按照错误消息的建议正确停止或暂停所有输入和输出(I/O)?

ios swift audiokit

5
推荐指数
0
解决办法
367
查看次数

使用 Swift 的 SKVideoNode 中的垂直视频方向问题

下面的代码显示了我的视频文件在正确的 zPosition 中,以及我正在使用的其他元素,创建了一个背景视频。

我遇到的问题是垂直视频(1080x1920 像素)逆时针旋转 90 度,并被拉伸以适合横向视频。如何在不牺牲使用 SKVideoNode 和 zPosition 的需要的情况下确保正确的方向?

let videoNode: SKVideoNode? = {

    guard let urlString = Bundle.main.path(forResource: "merry", ofType: "mov") else {
        return nil
    }

    let url = URL(fileURLWithPath: urlString)
    let item = AVPlayerItem(url: url)
    player = AVPlayer(playerItem: item)

    return SKVideoNode(avPlayer: player)

}()

videoNode?.position = CGPoint( x: frame.midX, y: frame.midY)
videoNode?.size = self.frame.size
videoNode?.zPosition = 20
addChild((videoNode)!)

player.play()
player.volume = 0
Run Code Online (Sandbox Code Playgroud)

非常感谢!

video ios avplayer skvideonode swift

3
推荐指数
1
解决办法
817
查看次数

标签 统计

ios ×4

swift ×4

audiokit ×3

midi ×2

audio ×1

avplayer ×1

skvideonode ×1

video ×1