라이브 스트리밍을 통해 스트리밍되는 MP3에서 ID3 정보를 추출하는 데 어려움을 겪고 있습니다 (호기심이있는 경우 Wowza 미디어 서버 사용). 나는 (수동으로 다운로드 할 때 .m3u
에 의해 생성 된 색인 파일에 나열된대로 각 세그먼트에서 볼 수 있기 때문에 태그 (현재 앨범 태그 및 앨범 아트웍 태그)가 각 파일 세그먼트에 올바르게 삽입되고 있음을 알고 있습니다. 섬기는 사람.HTTP 라이브 스트리밍을 통해 MP3에서 ID3 태그 추출
나는이 작업을 수행 할 AVFoundation
클래스를 사용하고, 나는 그것을 같은 설정을 가지고 :
- (void)initializeAudioStream {
NSURL *streamUrl = [NSURL URLWithString:self.urlField.text];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:streamUrl];
self.musicPlayer = [AVPlayer playerWithPlayerItem:playerItem];
self.musicPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
[self.musicPlayer addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:NULL];
}
내 KVO 방법이 트리거되면, 내가 self.musicPlayer
재생을 시작하고 내가 각 1 거기에 addPeriodicTimeObserverForInterval
전화/4 초. 이 방법으로 ID3 메타 데이터를 추출하려고합니다.
나는 AVAssetTrack
각각의 인스턴스에 걸쳐뿐만 아니라 반복하는 등
self.musicPlayer.currentItem.asset.commonMetadata
를 인쇄하고
자신의 메타 데이터를 인쇄를 포함하여,이를 위해 내가 사물의 아이폰 OS 측에서 생각할 수있는 모든 노력을했다.
for (AVAssetTrack *track in self.musicPlayer.currentItem.asset.tracks) {
NSLog(@"Media type of track: %@", track.mediaType);
NSLog(@"Track metadata: %@", track.commonMetadata);
}
재미있는 점은 자산에는 항상 2 개의 트랙이 있다고 표시된다는 것입니다. mediaType
속성을 인쇄 할 때 첫 번째 속성에는 "soun", 두 번째 속성에는 "tmet"가 표시됩니다. 제 가정은 첫 번째 트랙은 오디오 데이터 자체이고 두 번째 트랙은 메타 데이터입니다. 그러나, 나는 빈 배열 commonMetadata
에서 만 볼 수 있습니다.
또한 트랙에서 statusOfValueForKey:error
을 사용하여 속성 상태를 확인하고 commonMetadata
키는 항상 AVKeyValueStatusLoaded
으로 되돌아갑니다.
아이디어가 있으십니까? 나는 완전한 손실에 여기있다.
또한 현재 iOS 4.2.1을 실행하는 iPhone 4 시뮬레이터를 통해이를 실행하고 있습니다. 애플이 아직 내 회사의 개발자 계정을 승인하고 있기 때문에 아직 장치에 넣을 수는 없다.
에 의해 요청의 응답을 볼 수 있습니까? 클라이언트 측에서 "timedMetadata"를 사용하여 메타 데이터를 잡았습니까? –