Od wersji iOS 5 mamy dostęp do MPNowPlayingInfoCenter
, aby wyświetlać informacje na ekranie blokady i elementach sterowania multimediami na pasku wielozadaniowości. Mam aplikację, która odtwarza pliki dźwiękowe lokalnie. Chcę wyświetlać informacje takie jak nazwa wykonawcy, album i grafika na ekranie blokady za pomocą MPNowPlayingInfoCenter
, ale jedynym sposobem, aby to zrobić (o ile mi wiadomo) jest użycie MPMusicPlayerController
i uzyskanie nowPlayingItem
... Problem polega na tym, że MPMusicPlayerController
służy wyłącznie do odtwarzania muzyki z iPoda, a nie lokalnie zapisanych plików. Czy jest jakiś sposób obejścia tego w iOS 5?iOS: Wyświetlanie aktualnie odtwarzanych informacji o utworze w LockScreen?
5
A
Odpowiedz
17
Możesz stworzyć własny NSDictionary i dostarczyć go do MPNowPlayingInfoCenter.
NSArray *keys = [NSArray arrayWithObjects:MPMediaItemPropertyAlbumTitle, MPMediaItemPropertyArtist, ..., nil];
NSArray *values = [NSArray arrayWithObjects:@"Album", @"Artist", ..., nil];
NSDictionary *mediaInfo = [NSDictionary dictionaryWithObjects:values forKeys:keys];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:mediaInfo];
Ale jak uzyskać nazwę albumu zapisanego lokalnie? Czy grafika? – Alex1987
Należy przeczytać znaczniki ID3 lokalnie zapisanego pliku. Zobacz http://stackoverflow.com/questions/1239460/reading-mp3-information-using-objective-c – steharro
Należy również określić, że aplikacja odbiera zdarzenia zdalnej kontroli: '[[UIApplication sharedApplication] beginReceivingRemoteControlEvents;;' –