如何在 iOS 上播放音符(.mid 文件)?
Posted
技术标签:
【中文标题】如何在 iOS 上播放音符(.mid 文件)?【英文标题】:How to play sound note (.mid file) on iOS? 【发布时间】:2017-12-13 08:18:58 【问题描述】:我想制作钢琴演奏器,我想在其中演奏一些 .mid 文件的预定义音符。这是我的代码不起作用。
let soundPath: String? = Bundle.main.path(forResource: "0_100", ofType: "mid")
let midiFile:URL = URL(fileURLWithPath: soundPath ?? "")
var midiPlayer: AVMIDIPlayer?
do
try midiPlayer = AVMIDIPlayer(contentsOf: midiFile, soundBankURL: nil)
midiPlayer?.prepareToPlay()
midiPlayer?.play
print("finished playing")
catch
print("could not create MIDI player")
【问题讨论】:
如何定义 sound-banks 呢?你可以想象 MIDI,例如一张带音符的纸,但仍需要为音乐会定义带乐器的管弦乐队。 你的意思是我也必须设置声音库?我想在用户单击按钮时播放音符。每个按钮播放不同的音符 【参考方案1】:soundBankURL
在以下内容中缺失:
try midiPlayer = AVMIDIPlayer(contentsOf: midiFile, soundBankURL: nil)
文档要求:https://developer.apple.com/documentation/avfoundation/avmidiplayer/1389225-init
重要 对于 macOS,bankURL 可以设置为 nil 以使用默认的声音库。但是,ios 必须始终引用有效的银行文件。
例如,soundBank 可以是 .sf2 文件。
【讨论】:
但我没有音库文件...我想在用户点击按钮时播放音符...不同的按钮会产生不同的音符声音 @sejalthesiya 可能会尝试在互联网上找到一个,例如 oracle.com/technetwork/java/soundbanks-135798.html 或 synthfont.com/links_to_soundfonts.html以上是关于如何在 iOS 上播放音符(.mid 文件)?的主要内容,如果未能解决你的问题,请参考以下文章