2016-05-08 16 views
12

में संगीत नोट्स चलाएं मैं एक स्विफ्ट प्लेग्राउंड के अंदर ध्वनि के रूप में एक डिफ़ॉल्ट साइन लहर के साथ एक लघु संगीत नोट अनुक्रम खेलने की कोशिश कर रहा हूं। बाद में मैं ध्वनि को साउंडफॉन्ट के साथ प्रतिस्थापित करना चाहता हूं लेकिन फिलहाल मैं कुछ ध्वनि उत्पन्न करने से खुश हूं।स्विफ्ट प्लेग्राउंड

मैं चाहता हूं कि यह नोट्स पर प्रत्यक्ष नियंत्रण के साथ अनुक्रम की तरह मिडी हो, न कि पूरी तरह ऑडियो आधारित। AudioToolbox जो मैं ढूंढ रहा हूं उसे प्रदान करना प्रतीत होता है लेकिन मुझे इसके उपयोग को पूरी तरह से समझने में परेशानी है। यहां मैं वर्तमान में

import AudioToolbox 

// Creating the sequence  

var sequence:MusicSequence = nil 
var musicSequence = NewMusicSequence(&sequence) 

// Creating a track 

var track:MusicTrack = nil 
var musicTrack = MusicSequenceNewTrack(sequence, &track) 

// Adding notes 

var time = MusicTimeStamp(1.0) 
for index:UInt8 in 60...72 { 
    var note = MIDINoteMessage(channel: 0, 
           note: index, 
           velocity: 64, 
           releaseVelocity: 0, 
           duration: 1.0) 
    musicTrack = MusicTrackNewMIDINoteEvent(track, time, &note) 
    time += 1 
} 

// Creating a player  

var musicPlayer:MusicPlayer = nil 
var player = NewMusicPlayer(&musicPlayer) 

player = MusicPlayerSetSequence(musicPlayer, sequence) 
player = MusicPlayerStart(musicPlayer) 

जैसा कि आप कल्पना कर सकते हैं, कोई आवाज नहीं चल रही है। मैं इस ध्वनि अनुक्रम को जोर से खेलने के तरीके के बारे में किसी भी विचार की सराहना करता हूं।

उत्तर

9

आपको खेल के मैदान के लिए एसिंक्रोनस मोड सक्षम करना होगा।

शीर्ष पर इस जोड़े (Xcode 7, स्विफ्ट 2):

import XCPlayground 
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true 

और अपने अनुक्रम खेलेंगे।

Xcode 8 (स्विफ्ट 3) के लिए एक ही:

import PlaygroundSupport 
PlaygroundPage.current.needsIndefiniteExecution = true 
संबंधित मुद्दे