【问题标题】:Caching in VLC Media PlayerVLC 媒体播放器中的缓存
【发布时间】:2017-08-06 12:27:33
【问题描述】:

我正在使用 VLC 媒体播放器 (MobileVLCKit.framwork) 播放 .mpd 格式的文件。对于 AVCaching Player,我们有缓存选项,但在这种情况下,我无法添加缓存功能。我试过但没有得到任何关于解决这个问题的信息。如果任何机构都可以提供很少的想法来解决这个问题,那就太好了。我正在做 iOS 开发。

这是 AVcaching player catch 的代码,并希望 VLC Media Player 缓存相同。

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

    Log(@"response received");

    if(self.videoCacheObject.response == nil){
        self.videoCacheObject.response = (NSHTTPURLResponse *)response;
    }

    if([self.delegate respondsToSelector:@selector(requestDidReceiveResponse)]){
        [self.delegate requestDidReceiveResponse];
    }
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [self.videoCacheObject.videoData appendData:data];

    Log(@"video data length = %lu", (unsigned long)self.videoCacheObject.videoData.length);

    if(self.videoCacheObject.videoData.length > PARTIAL_LOAD_LENGTH * self.videoCacheObject.response.expectedContentLength && shouldLoadPartial){
        [[TMCache sharedCache] setObject:self.videoCacheObject forKey:self.videoName];
        [self.connection cancel];

        if([self.delegate respondsToSelector:@selector(requestPrefetchingCompleted)]){
            Log(@"prefetching completed");
            [self.delegate requestPrefetchingCompleted];
        }
    }
    else if(self.videoCacheObject.videoData.length > 0.15*self.videoCacheObject.response.expectedContentLength){
        [[TMCache sharedCache] setObject:self.videoCacheObject forKey:self.videoName];
    }

    if([self.delegate respondsToSelector:@selector(requestDidReceiveData)]){
        [self.delegate requestDidReceiveData];
    }
}

【问题讨论】:

    标签: ios objective-c iphone caching vlc


    【解决方案1】:

    MobileVLCKit 不允许您以这种方式进行缓存。

    你基本上有两个选择:

    • 信任 VLC,它正在做正确的事情(或提供“--network-caching”作为选项,所需的缓冲区大小以毫秒为单位,默认为 300)
    • 自己将媒体缓存为文件并要求 VLC 播放该文件。与桌面 VLC 一样,文件不需要完整即可播放大多数格式。

    MobileVLCKit 的未来版本将添加第三个选项,即 VLC 的内存输入模块,因此您可以在内存中提供数据而无需先将它们存储到本地,但这在今年秋季之前无法投入生产.

    【讨论】:

    • 网络缓存应该增加内存消耗吧?我尝试了不同的选项,但内存消耗没有改变。我还在初始化程序和 VLCMedia 选项中尝试了这个选项。VLCKit 3.0.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多