2014-07-25 31 views
7

Sto provando a riprodurre un suono di sistema. Utilizzando Xcode 6 Beta 4. Ecco il codice:Perché il suono del sistema ios non funziona nel simulatore?

func playKeyClick() 
{ 
    let filePath = NSBundle.mainBundle().pathForResource("Tock", ofType: "aiff") 
    if NSFileManager.defaultManager().fileExistsAtPath(filePath) { 
     println("file exists") 
    } 
    let fileURL = NSURL(fileURLWithPath: filePath) 
    var soundID:SystemSoundID = 0 
    AudioServicesCreateSystemSoundID(fileURL, &soundID) 
    AudioServicesPlaySystemSound(soundID) 
} 

Funziona bene sui dispositivi ma non suona nel simulatore. Ho creato un'applicazione di test che non fa altro che riprodurre questo suono, quindi non penso di fare nulla per fermarlo.

Il simulatore riproduce l'audio dall'app Safari, quindi presumo che mostri che è in grado di riprodurre suoni dalla mia app.

Nota che ho anche altri codici per riprodurre il suono in altri due modi che funzionano anche su dispositivi ma non su simulatore. Ho scelto questo esempio per semplicità.

Modifica - cambiato file di risorse fascio di evitare confusione

+1

possibile duplicato di [Suono non funzionante in iPhone Simulator?] (http://stackoverflow.com/questions/302399/sound-not-working-in-iphone-simulator) –

+0

Dovresti affermare (cioè asserire (soundID! = 0)) dopo aver impostato quel suono, per assicurarsi che sia stato impostato. Anche AudioServicesCreateSystemSoundID restituisce un OSStatus, stampalo. –

+0

Ho modificato le impostazioni audio del mio sistema e le impostazioni MIDI come suggerito per la risposta del suono-non-funzionante-in-iphone-simulator. L'unica cosa che non ho potuto provare è stata l'impostazione di line-in per l'input, l'opzione non esiste (usato invece il microfono). –

risposta

0

Perché file non esiste nel percorso specificato. Per verificare ciò, salvare un file audio sul tuo locale e specificare il suo percorso proprio codice (si veda ad esempio qui sotto) -

let fileURL = NSURL(fileURLWithPath: "/Users/<Home dir>/Desktop/yoursund.mp3") 
+0

Ho modificato la mia domanda per rendere il file locale all'app e verificare che abbia trovato il file. Il problema persiste ancora –

7

sto rispondendo alla mia domanda per chiarire quello che ho imparato. C'erano tre problemi che impedivano il funzionamento del mio codice originale. Nota Sto usando Xcode6 Beta4 e iphone 5s sul simulatore.

1- Il percorso del file originale che stavo utilizzando di "/System/Library/Audio/UISounds/Tone.caf" non funziona nel simulatore, è valido solo sul dispositivo. Correggendolo aggiungendo file audio all'app.

2- Sound not working in iPhone Simulator? informazioni fornite che hanno funzionato correttamente per iOS 7.1 e precedenti. Non sono sicuro quale dei vari suggerimenti abbia funzionato da quando stavo testando con ios8 mentre li ho analizzati.

3- Poiché lo stesso codice che funziona su ios7 non funziona su ios8, suppongo ci sia un errore nel codice del simulatore io8 (il dispositivo ios8 funziona correttamente). Su tre modi ho cercato di produrre un suono, una sola non funziona:

AudioServicesPlaySystemSound() - non funziona uscita

AudioUnit - Lavori

AVAudioPlayer - Lavori

+3

Confermo che AudioServicesPlaySystemSound() non funziona come in iOS 7.1. Non viene riprodotto alcun suono nel simulatore, ma funziona nel dispositivo reale.(Testato su Xcode 6 GM) – John

+2

AudioServicesPlaySystemSound() non funziona per me nel simulatore. Funziona sul dispositivo. Testato con Xcode 6.0.1 e iOS 8.0. –

+0

Ancora non funziona a partire dal gennaio 15 (XCode 6.1). –

Problemi correlati