Domanda

Come posso inserire un file musicale della libreria iPod in AVAudioPlayer?

È stato utile?

Soluzione

L'SDK non prevede la lettura di file dalla libreria dell'iPod (come dovresti fare per utilizzare AVAudioPlayer con esso), probabilmente per ragioni antipirateria.Per riprodurre gli elementi della libreria iPod, utilizzare il file MPMusicPlayerController classe.

Modificare:Questo non è più accurato. Vedi le risposte seguenti che descrivono l'uso della classe AVPlayer.

Altri suggerimenti

Come David cita c'è più lavoro da fare di questo, per esempio, si deve gestire la riproduzione del brano successivo in una collezione di elementi multimediali, ma qui è un modo per farlo con una serie di MPMediaItems che un utente selezionato da l'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];

Sì, è possibile riprodurre brani dalla libreria iPod utilizzando l'SDK senza ricorrere alla classe MPMusicPlayerController.

La classe AVPlayer più di base in grado di gestire i file audio dalla libreria iPod utilizzando il valore NSUrl dalla proprietà MPMediaItemPropertyAssetURL della canzone. Bisogna fare molto più lavoro per ottenere l'installazione tutto correttamente, ma si può fare.

C'è qualche possibilità per ottenere informazioni su dB-misurazione in MPMusicPlayerController? Forse iniziare un AVAudioSession per la registrazione in parallelo sarebbe fare il lavoro ?? Ho bisogno di db-valori per costruire una sorta di volume-spettrografo.

- (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];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top