2012-10-21 1 views
0

URL에서 mp3를 스트리밍하고 IULabel로 출력 할 때 다운로드 한 바이트를 모니터링하고 싶습니다. 나는 그것을하기위한 쉬운 방법을 찾을 수 없습니다.AvPlayerItem 및 AvPlayer - iOS를 통해 스트리밍 할 때 다운로드 한 바이트를 모니터링하십시오.

"AVPlayerItemAccessLog"는 어떤 정보입니까? 나는 그것을 사용하는 방법을 알아낼 수 없다? 아무도 그러한 정보를 얻는 방법을 알고 있습니까?

-(void)play 
{ 
    /*Allow radio to run in background*/ 
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    [[AVAudioSession sharedInstance] setActive: YES error: nil]; 

    /*Gets the url fra sender*/ 
    NSString *urlString= self.radioStation.url; 
    NSURL *url = [NSURL URLWithString:urlString]; 

    /*Stop the radio if its play or have info*/ 
    if(self.avPlayerItem) 
    { 
     [self stop]; 

    } 


    /*Sets the Avplayeritem*/ 
    self.avPlayerItem = [AVPlayerItem playerItemWithURL:url]; 

    /*Listen for changes in the avPlayerItem*/  
    [self.avPlayerItem addObserver:self forKeyPath:@"status" options:0 context:nil]; 

    /*Sets the avplayer with avplayeritem*/ 
    self.avPlayer = [AVPlayer playerWithPlayerItem:self.avPlayerItem]; 

    /*Sends loading info to the nortification*/ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"Loading" object:self]; 

    /*Plays the radio*/ 
    [self.avPlayer play]; 
} 

답변

0

당신은이 정보를 얻기 위해 AVPlayerItem에 KVO를 사용해야합니다 :

아래는 플레이 스트림 내 코드입니다. 이런 식으로 뭔가 :

[self.player.currentItem addObserver:self 
          forKeyPath:@"loadedTimeRanges" 
          options:NSKeyValueObservingOptionNew 
          context:NULL]; 

그리고 표준 관찰자 방법 :

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    // Get the player item's loadedTimeRanges value here. 
} 

플레이어 항목을 해제하기 전에 관찰자를 제거하는 것을 잊지 마십시오.