【问题标题】:Determening MPMovieController bit-rate确定 MPMoviez 控制器比特率
【发布时间】:2011-09-04 11:03:34
【问题描述】:

有没有办法确定 MPMovieController 正在播放的流的比特率? 我在 iOS 上用 Objective-C 编程

【问题讨论】:

    标签: iphone objective-c video-streaming


    【解决方案1】:

    您可以从事件中获取指示的比特率,这是根据m3u8的流的比特率。为了计算实际比特率,我将 event.numberOfBytesTransferred / event.durationWatched 相除并乘以 8。

    NSArray *events = self.player.accessLog.events;
        MPMovieAccessLogEvent *event = (MPMovieAccessLogEvent *)[events lastObject];
    double calculatedBitRate = 8 * event.numberOfBytesTransferred / event.durationWatched;
        value = [nf stringFromNumber:[NSNumber numberWithDouble:calculatedBitRate]];
        self.calculatedBitRateLabel.text = [NSString stringWithFormat:@"My calculated bit rate = %@", value];
    

    【讨论】:

    • 我发现您给出的上述比特率计算显示了一个非常高的比特率值,请您详细解释一下。
    【解决方案2】:

    找到它,“accessLog”会为您提供定期统计信息,其中包括观察到的比特率:

    MPMovieAccessLogEvent *evt=nil;
    MPMovieAccessLog *accessL=[moviePlayer accessLog];
    NSArray *events = accessL.events;
    for (int i=0; i<[events count]; i++) {
        evt=[events objectAtIndex:i];
    }
    return evt.observedBitrate
    

    【讨论】:

    • 你能详细解释一下我们如何使用上面的代码找到视频的进度时间吗?我们在哪里需要用到上面的逻辑呢?当我们定义 MPMoviePlayerController 时应该使用它吗?
    • 我试图通过单击按钮来实现这一点,但我得到了以下格式。访问日志是 10097249,访问日志是 10035010。但我想获取视频播放的实际时间。我有一个视频按钮。我想在单击按钮时捕捉视频的特定时间。你能帮我解决这个问题吗?
    • 以上代码是获取Stream的当前码率,而不是位置。 evt 中还有其他统计信息(其中一个可能会为您提供所需的信息)
    • 您需要将此代码包装在由 NSTimer 发送消息的方法中。
    • @eshalev : 你能指导我如何利用它来切换 URL 流吗?
    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 2016-12-05
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多