Come posso ottenere un file musicale della libreria iPod in AVAudioPlayer?Come riprodurre il file di libreria dell'iPod in AVPlayer
risposta
L'SDK non prevede la lettura dei file dalla libreria dell'iPod (come si dovrebbe fare per utilizzare AVAudioPlayer
con esso), probabilmente per motivi anti-pirateria. Per riprodurre gli elementi della libreria di iPod, utilizzare la classe MPMusicPlayerController
.
Modifica: non è più corretto. Vedere le risposte sottostanti che descrivono l'uso della classe AVPlayer.
Questo non è vero, vedere le altre risposte che documentano come accedere alla libreria di iPod da utilizzare con AVAudioPlayer. –
Questo potrebbe essere stato vero nel Dic '09 ma è possibile ora come spiega Steve Tranby nella sua risposta. – prendio2
Esiste la possibilità di ottenere informazioni sulla misurazione dB in MPMusicPlayerController
? Forse avviare un AVAudioSession
per la registrazione in parallelo farebbe il lavoro ?? Ho bisogno di valori dB per costruire una sorta di spettrografo del volume.
Domanda di 2 anni, ma aggiungerò la risposta per chiunque altro arrivi qui. Per ottenere il livello dB dall'audio, utilizzare AudioStreamBasicDescription di Core-Audio (https://developer.apple.com/library/mac/documentation/musicaudio/reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/uid/TP40004488-CH3-SW2) con i dati audio come flusso. Sto usando l'URL dalla libreria ipod per la risorsa e sto usando i dati all'URL con core-audio. – jarryd
Puoi approfondire questa risposta un po 'di più? –
@ Helium3: la soluzione funziona anche con i file protetti IOS10 e DRM? –
Sì, è possibile riprodurre brani dalla libreria iPod utilizzando l'SDK senza ricorrere alla classe MPMusicPlayerController
.
La classe più semplice AVPlayer
può gestire i file audio dalla libreria iPod utilizzando il valore NSUrl
dalla proprietà MPMediaItemPropertyAssetURL
della song. Devi fare molto più lavoro per ottenere tutto configurato correttamente, ma può essere fatto.
Non so come, ma usando AVAplat = yer non funziona. –
Come dice David, c'è altro lavoro da fare oltre a questo, per esempio devi gestire la traccia successiva in una raccolta di elementi multimediali, ma qui c'è un modo per farlo con un set di MPMediaItem che un utente ha selezionato da iPod Picker. L'AssetURL è quello che si usa, ti dà un percorso del file MP3 (per esempio iPod-biblioteca:? //item/item.mp3 id = -6889145242935454020)
NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];
[self.audioPlayerMusic play];
Soory, non può riprodurre suoni, con AVPlayer. È necessario aiuto –
Questo ** non funzionerà ** per ** brani protetti da DRM ** (come quelli dell'abbonamento _Apple Music_) o per quelli che non sono disponibili ** offline ** ma in cloud. Se sei interessato a verificare se la musica è protetta da DRM o suona musica protetta da DRM nel modo giusto, leggi la mia risposta dettagliata qui: https://stackoverflow.com/a/47694472/4331787 –
Grazie, per la risposta. Qui hai spiegato come rilevare la traccia drm. Per favore dimmi come si gioca. Sto usando AVPlayer ma non sta giocando. Potrei giocare usando MPMusicPlayer, ma il mio requisito è necessario per giocare usando AVFoundation. –
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
NSURL *url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL];
NSError *error;
self.player = [[AVAudioPlayer alloc] url error:&error];
if (!error) {
[self.player prepareToPlay];
[self.player play];
}
[mediaPicker dismissModalViewControllerAnimated:YES];
}
mi raccomando guardando http : //superuser.com/ anche tu potresti voler dare maggiori dettagli. Quale programma stai usando esattamente e hai fatto qualche ricerca fino ad ora? – Guvante
AVAudioPlayer è una classe utilizzata per ... beh ... riprodurre l'audio su un iPhone. Sai, quando stai programmando per questo. La domanda è sicuramente legata alla programmazione. – aehiilrs