Alternativ , ein hässlicher Hack, der funktioniert Für mich (tm).
- (MPMediaItem *)getMediaItemForURL:(NSURL *)url {
// We're going to assume that the last query value in the URL is the media item's persistent ID and query off that.
NSString *queryString = [url query];
if (queryString == nil) // shouldn't happen
return nil;
NSArray *components = [queryString componentsSeparatedByString:@"="];
if ([components count] < 2) // also shouldn't happen
return nil;
id trackId = [components objectAtIndex:1];
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:trackId forProperty:MPMediaItemPropertyPersistentID]];
NSArray *items = [query items];
if ([items count] < 1) // still shouldn't happen
return nil;
return [items objectAtIndex:0];
}
Kommentare geschätzt für, wo das schief gehen könnte oder wie man es verbessert. Ich übergebe lieber die URL anstelle der PersistentID, da ich mehrere Medienquellen habe, die alle URLs verwenden können. Die Verwendung der PersistentID würde bedeuten, "wenn dies eine Medien-ID ist, tun Sie dies, ansonsten tun Sie das mit der URL".
danke Ihre Hilfe, es funktioniert :) – flatronka
Wie Medienelement von Host zu Client-Seite mit Multiplikator-Konnektivität übergeben? –