Joh*_*hnG 5 iphone objective-c avplayer
我正在尝试使用AVPlayer从我的iPhone音乐库播放一首歌.一切似乎都准备好了,但玩家根本不会发出任何声音.我一直在努力解决这个问题,任何帮助都将不胜感激!
注意:我意识到我可以使用AVAudioPlayer,但我想直接从我的音乐库中读取文件,据我所知,AVAudioPlayer不支持(我必须首先导出歌曲,占用更多时间).我无法使用MPMusicPlayerController,因为最终目标是将歌曲转换为NSData并在另一台设备上播放.
最重要的是,我想知道为什么这段代码没有播放:
NSArray *itemsFromQuery = [[MPMediaQuery songsQuery] items];
MPMediaItem *song = [itemsFromQuery objectAtIndex:29];
NSURL *songURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset *urlAsset = [[AVURLAsset alloc] initWithURL:songURL options:nil];
NSArray *keyArray = [[NSArray alloc] initWithObjects:@"tracks", nil];
[urlAsset loadValuesAsynchronouslyForKeys:keyArray completionHandler:^{
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:urlAsset];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
while (true) {
if (player.status == AVPlayerStatusReadyToPlay && playerItem.status == AVPlayerItemStatusReadyToPlay) {
break;
}
}
if (player.status == AVPlayerStatusReadyToPlay && playerItem.status == AVPlayerItemStatusReadyToPlay) {
NSLog(@"Ready to play");
[player play];
}
else
NSLog(@"Not ready to play");
}];
Run Code Online (Sandbox Code Playgroud)
在调用play方法后,输出为"Ready to play",AVPlayer的"rate"属性为1.0.MPMediaItem存在,我可以使用valueForProperty方法来获得正确的标题,艺术家等.任何想法为什么没有声音来自播放器?
Joh*_*hnG 12
发现有用的东西:
在使用initWithAsset方法之前,我确保AVPlayer为零.
NSArray *itemsFromQuery = [[MPMediaQuery songsQuery] items];
MPMediaItem *song = [itemsFromQuery objectAtIndex:0];
NSURL *songURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset *urlAsset = [[AVURLAsset alloc] initWithURL:songURL options:nil];
NSArray *keyArray = [[NSArray alloc] initWithObjects:@"tracks", nil];
[urlAsset loadValuesAsynchronouslyForKeys:keyArray completionHandler:^{
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:urlAsset];
player = nil;
player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
while (true) {
if (player.status == AVPlayerStatusReadyToPlay && playerItem.status == AVPlayerItemStatusReadyToPlay)
break;
}
[player play];
}];
Run Code Online (Sandbox Code Playgroud)希望这可以帮助别人!
| 归档时间: |
|
| 查看次数: |
2721 次 |
| 最近记录: |