1

ここにあるこのコードを使用して mp3 ファイルを提供しています。

私のmp3はすぐに再生を開始し、現在の時間などを再生しますが、期間がわかりません

ファイルに直接リンクする場合、私はそれを取得します。

これが私のIOSコードです:

-(void)initAVPlayer{
    NSString *link = @"<link go php file>";
    NSURL *url = [NSURL URLWithString:link];
    AVURLAsset *asset = [AVURLAsset assetWithURL: url];
    Float64 duration = CMTimeGetSeconds(asset.duration); // nothing here
    AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:asset];
    avPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];
    CMTime interval = CMTimeMake(20, 1000);
     __unsafe_unretained typeof(self) weakSelf = self;
    playbackObserver = [avPlayer addPeriodicTimeObserverForInterval:interval queue:dispatch_get_current_queue() usingBlock:^(CMTime time) {
    [weakSelf updatePlayerValues];
}];
    playButton.enabled = NO;
    [avPlayer play];
}
-(void)updatePlayerValues{
    CMTime duration = [[[[[avPlayer.currentItem tracks] objectAtIndex:0] assetTrack]asset]duration]; // nothing here
    CMTime endTime = CMTimeConvertScale (duration, avPlayer.currentTime.timescale, kCMTimeRoundingMethod_RoundHalfAwayFromZero);
    if (CMTimeCompare(endTime, kCMTimeZero) != 0) {
        // do some stuff.
    }
}

私はそれが私のphpコードに関係していると推測しています。

前もって感謝します。

編集: HTTP ヘッダーは次のとおりです。

Array(
   [0] => HTTP/1.1 200 OK
   [1] => Date: Fri, 04 Oct 2013 19:30:26 GMT
   [2] => Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8y DAV/2 PHP/5.3.6
   [3] => X-Powered-By: PHP/5.3.6
   [4] => Content-Disposition: inline; filename="Radio head beat.mp3"
   [5] => Pragma: no-cache
   [6] => Content-Length: 1846251
   [7] => Connection: close
   [8] => Content-Type: audio/mpeg
)
4

0 に答える 0