我試圖做一個非常簡單的應用程序,目的是偵聽音頻流(AAC 64 kbps)。要做到這一點我使用AVPlayer
從Apple AVFoundation
一直遵循:AVPlayer獲取元數據但不播放
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize playerItem, player;
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://stream.myjungly.fr/MYJUNGLY2"]];
[playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:nil];
player = [AVPlayer playerWithPlayerItem:playerItem];
[player play];
NSLog(@"player item error : %@", playerItem.error.description);
NSLog(@"player error : %@", player.error.description);
}
- (void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object
change:(NSDictionary*)change context:(void*)context {
if ([keyPath isEqualToString:@"timedMetadata"])
{
AVPlayerItem* _playerItem = object;
for (AVMetadataItem* metadata in _playerItem.timedMetadata)
{
NSLog(@"\nkey: %@\nkeySpace: %@\ncommonKey: %@\nvalue: %@", [metadata.key description], metadata.keySpace, metadata.commonKey, metadata.stringValue);
}
}
}
@end
我的目標player
和playerItem
是強屬性:
ViewController.h
@interface ViewController : UIViewController
@property (nonatomic, strong) AVPlayerItem* playerItem;
@property (nonatomic, strong) AVPlayer* player;
@end
鍵值觀察是偉大的工作,這是我的日誌:
2013-05-14 11:18:03.725 MusicAvPlayer[6494:907] player item error : (null)
2013-05-14 11:18:03.728 MusicAvPlayer[6494:907] player error : (null)
2013-05-14 11:18:08.140 MusicAvPlayer[6494:907]
key: title
keySpace: comn
commonKey: title
value: Alabama Shakes - Be Mine
但音頻無法播放,我有去沒聲音!任何想法爲什麼?
編輯:我已經看這個問題:
AVAudioPlayer not playing any sound
這就是爲什麼我使用的是強大的屬性,所以我想我的問題是,不與ARC相關
像一個風情萬種!真棒代碼! – Genevios 2016-02-25 12:19:07