如何在第三方音乐应用程序中播放信息?

时间:2012-08-18 11:00:16

标签: objective-c ios mpmusicplayercontroller mpnowplayinginfocenter

我想现在播放信息。

所以,请遵循以下代码:

NSDictionary *info = [[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo];
NSString *title = [info valueForKey:MPMediaItemPropertyTitle];
NSLog(@"%@",title);
MPMusicPlayerController *pc = [MPMusicPlayerController iPodMusicPlayer];
MPMediaItem *playingItem = [pc nowPlayingItem];
if (playingItem) {
    NSInteger mediaType = [[playingItem valueForProperty:MPMediaItemPropertyMediaType] integerValue];
    if (mediaType == MPMediaTypeMusic) {
        NSString *songTitle = [playingItem valueForProperty:MPMediaItemPropertyTitle];
        NSString *albumTitle = [playingItem valueForProperty:MPMediaItemPropertyAlbumTitle];
        NSString *artist = [playingItem valueForProperty:MPMediaItemPropertyArtist];
        NSString *genre = [playingItem valueForProperty:MPMediaItemPropertyGenre];
        TweetTextField.text = [NSString stringWithFormat:@"#nowplaying %@ - %@ / %@ #%@", artist, songTitle, albumTitle,genre];
        MPMediaItemArtwork *artwork = [playingItem valueForProperty:MPMediaItemPropertyArtwork];
        CGSize newSize = CGSizeMake(250, 250);
        UIGraphicsBeginImageContext(newSize);
        [[artwork imageWithSize:CGSizeMake(100.0, 100.0)] drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        _imageView.image = newImage;
    }
    if (_imageView.image == nil){
    } else {
        _tableView.alpha=0.5;
    }
}

但是这段代码现在可以从Defautl iPod应用程序中获取信息。

如何在Thirdparty音乐应用程序中获得正在播放的信息? (例如:Mobile Safari,Youtube App,gMusic,Melodies等)。

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的。 documentation表示MPNowPlayingInfoCenter仅用于在锁定屏幕上设置信息。

这是a related question