SDWebImageVideoCoder 0.2.0

SDWebImageVideoCoder 0.2.0

DreamPiggy维护。



  • DreamPiggy

SDWebImageVideoCoder

CI Status Version License Platform

用途

这只是一个用于 SDWebImage 的玩具编码器插件。旨在提供如何将 Animated Image View 和 Player 结合使用来演示 SDWebImage 的使用,使其适用于通用用途和自定义。

重要:该项目仅是一个玩具,这意味着它不提供任何生产就绪功能,性能非常慢。

对于现实世界中的短视频文件(如Imgur 的 GIFV 格式)。您应该始终优先使用视频播放器和渲染组件,如 AVKit 的AVPlayerViewController .

此编码器插件支持以下视频格式的动画加载

  • MP4 (MPEG/4)
  • M4V (Apple iTunes 电影)
  • MOV (QuickTime 电影)

要求

  • iOS 9+
  • macOS 10.11+
  • tvOS 9+

安装

CocoaPods

SDWebImageVideoCoder可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中

pod 'SDWebImageVideoCoder'

Carthage

SDWebImageVideoCoder可以通过Carthage获取。

github "SDWebImage/SDWebImageVideoCoder"

Swift包管理器(Xcode 11+)

SDWebImageVideoCoder可以通过Swift包管理器获取。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/SDWebImage/SDWebImageVideoCoder.git", from: "0.2.0")
    ]
)

使用方法

加载视频地址

关于编码器插件的使用,请参阅Wiki - Coder 使用

  • Objective-C
// register coder
[SDImageCodersManager.sharedCoder addCoder:SDImageVideoCoder.sharedCoder];
// load URL
SDAnimatedImageView *imageView;
NSURL *videoURL = [NSURL URLWithString:@"https://i.imgur.com/FY1AbSo.mp4"]; 
[imageView sd_setImageWithURL:videoURL];
  • Swift
// register coder
SDImageCodersManager.shared.addCoder(SDImageVideoCoder.shared)
// load URL
let imageView: SDAnimatedImageView
let url = URL(string: "https://i.imgur.com/FY1AbSo.mp4")
imageView.sd_setImage(url: url)

AVAsset播放器使用

有关播放器的使用,请参阅Wiki - 动画图像播放器

  • Objective-C
// AVAsset
AVAsset *asset;
AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
generator.requestedTimeToleranceBefore = kCMTimeZero;
generator.requestedTimeToleranceAfter = kCMTimeZero;
// player
SDAnimatedImagePlayer *player = [SDAnimatedImagePlayer playerWithProvider:generator];
player.animationFrameHandler = ^(NSUInteger index, UIImage * frame) {
    // frames
};
[player seekToFrameAtIndex:5 loopCount:0];
[player play];
  • Swift
let asset: AVAsset
let generator = AVAssetImageGenerator(asset: asset)
generator.appliesPreferredTrackTransform = true
generator.requestedTimeToleranceBefore = .zero
generator.requestedTimeToleranceAfter = .zero
// Player
let player = SDAnimatedImagePlayer(provider: generator)
player.animationFrameHandler = { (index, frame) in 
    // frames
}
player.seekToFrame(at: 5, loopCount: 0)
player.play()

示例

要运行示例项目,请克隆仓库,然后首先从示例目录运行pod install

这个演示MP4视频来自Imgur。您也可以尝试您自己的短视频文件。

作者

DreamPiggy, [email protected]

许可证

SDWebImageVideoCoder遵循MIT许可证。更多信息请参阅LICENSE文件。