小编Nat*_*yer的帖子

是否可以使用AVPlayer缓存HLS段?

根本问题

在iOS中搜索时,我们的视频会缓冲很多.它比我们的网络播放器缓冲得更多,它可以在临时存储中保存已经观看的片段的副本.

期望的解决方案

在设备的磁盘上本地缓存视频片段.我们很好地缓存单一质量并且总是重播它.

拦截器

我们找不到在AVFoundation/AVPlayer中执行缓存的方法.

我们尝试过什么

使用AVPlayer拦截网络请求的两种方法.

  1. 符合AVAssetResourceLoaderDelegate并手动处理媒体加载

不适用于HLS.您可以通过实现AVAssetResourceLoaderDelegate来加载m3u8文件,它允许您通过身份验证或解密响应,但无法加载.ts文件.这是我们尝试的代码:https: //gist.github.com/nathanhillyer/84e46152d7c4c88183b6

  1. 实现NSURLProtocol以捕获.ts文件请求.

AVURLAsset实际上避免被截获.不知何故,网络请求只是没有被捕获.(不知道为什么)

avfoundation video-streaming http-live-streaming ios avplayer

27
推荐指数
1
解决办法
8210
查看次数

WPF拖放源代码

关于在WPF中拖放的stackoverflow的几乎所有问题都可以参考这篇文章.但是,缺少该文章的源代码.有没有人有副本或知道在哪里找到副本?

PS我的主要关注点是文章中的这一行:"有更多的代码DragAdorner,但主要是用于定位装饰,因为拖动正在发生......请参考示例......"我不知道他是如何定位的拖动装饰.

c# wpf drag-and-drop adorner

8
推荐指数
1
解决办法
4372
查看次数

SpriteKit SKView 不再在 iOS 9 中的场景之间转换

我们有一个于 2013 年编写并发布的代码库,但在 iOS 9 中,SKScenepresentScene:transition:消息发送到我们的SKView. 他们SKScene收到didMoveToView:消息,但场景本身从未显示在屏幕上。

这是我们尝试过的:

  • Metal通过禁用Info.plist
  • 使用[SKTransition transitionWithCIFilter:duration:]而不是预定义的动画
  • 调整zPosition
  • 切换到常规UIView动画(这使得我们的SKNodes 消失)
  • 确保转换方法不会被多次调用
  • 明确设置pausesOutgoingSceneYESSKTransition

上述尝试均未解决该问题。请注意,所有内容在 iOS 8 中都能正常转换

这是一些不起作用的示例代码:

-(BOOL)presentTitle {
    if (!titleSceneLoaded) {
        return NO;
    }
    [skView presentScene:titleScene transition:[SKTransition fadeWithDuration:1.0]];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

将其更改为这样可以使其再次工作(无需转换):

-(BOOL)presentTitle {
    if (!titleSceneLoaded) {
        return NO;
    }
    [skView presentScene:titleScene];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

关于如何定位/修复/解决该错误有什么建议吗?

core-animation objective-c ios sprite-kit ios9

5
推荐指数
1
解决办法
601
查看次数

一个人可以使用什么来代替enum来获得智能感知的字符串集合?

目前在应用程序中使用枚举作为文件名列表,以便能够使用智能感知并确保文件名是现有文件之一(枚举可以防止拼写错误并且必须逐字记住每个文件名).枚举中目前有107个文件.为了获得音频文件名,使用了枚举值ToString()方法.

现在有一种情况需要根据数据库调用的结果添加一些文件名.枚举是不可能的,并且需要进行大量的应用程序重构(更改所有采用枚举取字符串的方法).

首先应该做些什么,或者枚举是这个用例的最佳选择?

.net c# enums

4
推荐指数
1
解决办法
426
查看次数