我正在尝试使iTunes歌曲预览在我的应用中播放。我发现了其他一些这样的问题,但解决方案对我来说没有。我已经签署了Apple拥有的会员计划。这是我尝试过的一些事情:
这让我想到了我正在尝试的iTunes预览URL
NSUInteger numberOfResults = 200;
NSString *searchString = @"AC/DC";
NSString *encodedSearchString = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *finalSearchString = [NSString stringWithFormat:@"https://itunes.apple.com/search?term=%@&entity=song&limit=%u",encodedSearchString,numberOfResults];
NSURL *searchURL = [NSURL URLWithString:finalSearchString];
dispatch_queue_t iTunesQueryQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, kNilOptions);
dispatch_async(iTunesQueryQueue, ^{
NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfURL:searchURL options:NSDataReadingUncached error:&error];
if (data && !error) {
NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = [JSON objectForKey:@"results"];
NSLog(@"Array is:%@",array);
}
});
这无扮演
NSURL *url = [NSURL URLWithString:[_backgroundPreviewList objectAtIndex:randomPreview]];
NSData *_objectData = [NSData dataWithContentsOfURL:url];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error];
audioPlayer.numberOfLoops = 0;
audioPlayer.volume = 1.0f;
[audioPlayer prepareToPlay];
if (audioPlayer == nil)
{
NSLog(@"%@", [error description]);
}
else
{
[audioPlayer play];
}
这也没有玩
AVPlayer* aPlayer = [AVPlayer playerWithURL:url];
[aPlayer play];
我什至尝试过这种不起作用
MPMoviePlayerController* player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[player play];
如果有人这样做,他们可以让我知道如何播放歌曲。
使用mpmovieplayercontroller发布并起作用,我相信这是流媒体预览的推荐方法。根据您要做的事情,您可能必须通过一些步骤来启用背景游戏。祝你好运。P.S.如果您获得Avplayer的工作,则有更多文档可提供背景播放的解决方案
{
self.songPreview = [[MPMoviePlayerController alloc] init];
self.songPreview.movieSourceType = MPMovieSourceTypeStreaming;
///从何处设置您的URL
[self.songPreview setContentURL:self.previewArtWorkButton.currentPreviewURL];
[self.view addSubview:self.songPreview.view];
///我将下一个属性设置为"隐藏",因为我正在控制音量并编程播放
[self.songPreview.view setHidden:YES];
///我将下一个属性设置为"否",因为我正在使用另一个触发器播放///播放歌曲,而不是在缓冲完成后播放
[self.songPreview setShouldAutoplay:NO];
[self.songPreview prepareToPlay];
}
///稍后我称之为播放方法
[self.songPreview play];
我使它起作用。我更改的一件事是,我从弧线上拿出了特定的班级,以确保一切都留在周围。这是我现在正在使用的代码
NSURL *url = [NSURL URLWithString:@"URL"];
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:url];
NSLog(@"The url is: %@", url);
if(_player)
{
[_player release];
}
_player = [[AVPlayer playerWithPlayerItem:playerItem] retain];
[_player play];
_player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
其中_player是Avplayer对象