PDMovieKit
免费公有领域电影,适用于 iOS 和 tvOS
目录
简介
PDMovieKit 是一个适用于 iOS 和 tvOS 的简单框架,它允许您的应用程序访问从 Internet Archive 项目中数百个免费的公有领域电影。
安装 PDMovieKit
Carthage
将PDMovieKit作为依赖项添加到项目中的Cartfile
中
github "p-morris/PDMovieKit" ~> 1.0.0
使用Carthage构建项目的依赖项
carthage update
构建过程完成后,从Carthage构建文件夹中拖动iOS(PDMovieKit.framework
)或tvOS(PDMovieKit_tvOS.framework
)文件到您的项目中。
确保在项目设置中的链接库和框架
部分列出了PDMovieKit框架。
切换到构建阶段
选项卡,并添加新的运行脚本
阶段
/usr/local/bin/carthage copy-frameworks
在输入文件
下,添加iOS或tvOS适当的输入框架文件。
对于tvOS,添加:$(SRCROOT)/Carthage/Build/tvOS/PDMovieKit_tvOS.framework
对于iOS,添加:$(SRCROOT)/Carthage/Build/iOS/PDMovieKit.framework
在输出文件
下,添加iOS或tvOS的适当输出文件名
对于tvOS,添加:$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/PDMovieKit_tvOS.framework
对于iOS,添加:$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/PDMovieKit.framework
注意:您可以将输入和输出文件添加到现有的运行脚本
阶段以及您之前已添加的其他Carthage依赖项中。
CocoaPods
将PDMovieKit添加到您的Podfile中
pod 'PDMovieKit'
通过运行以下命令来安装PDMovie
pod install
入门
1) 导入PDMovieKit
Carthage
对于Carthage用户,如果您在iOS项目中使用PDMovieKit,请使用以下import
import PDMovieKit
对于tvOS,使用
import PDMovieKit_tvOS
CocoaPods
CocoaPods用户可以使用以下import
语句在iOS和tvOS上均能使用
import PDMovieKit
2) 列出电影分类
在PDMovieKit中,电影属于一组分类。您可以使用PDCategory
类中的静态方法allCategories(completion:)
获取一个包含PDCategory
对象的数组
PDCategory.allCategories { (categories, error) in
if let categories = categories {
// Show the categories to the user
}
}
PDCategory
是一个非常简单的数据结构,包括name
和thumbnail
属性。
name
属性是一个表示分类名称的String
。
thumbnail
属性是一个表示可用作分类表示的缩略图的远程路径的String
。如果需要,请使用此thumbnail
属性创建一个URL
,然后请求下载图像文件以显示它。
3) 列出一个分类中的电影
您可以使用特定PDCategory
对象的movies(page:session:completionQueue:completion:)
函数访问一个包含PDMovie
对象的数组
horrorCategory.movies(page: 1, session: URLSession.shared, completionQueue: OperationQueue.main, completion: { (movies, error) in
if let movies = movies {
// Display list of movies to the user
}
})
注意!将会发起请求,并在后台队列中执行completion
闭包。您可以通过为completionQueue
参数传递一个OperationQueue
对象来指定您希望completion
闭包在哪个队列中执行。
PDMovie
对象是一个非常简单的数据结构,包括title
、description
、rating
、thumbnailURL
和watchURL
属性。
title
是一个表示电影标题的String
。description
是一个表示电影描述的String
。rating
是一个表示电影评价等级的Double
,介于0.0和5.0之间。thumbnailURL
是在其中可以找到电影缩略图的远程URL
。watchURL
可用于在h.264
格式中播放电影的URL。
4) 获取电影的元数据
每个PDMovie
都与一个相关的PDMovieMetaData
对象相关联,该对象提供了一组可选属性,进一步描述电影。
要获取特定电影的PDMovieMetaData
对象,请使用任何PDMovie
对象的metaData(session:completionQueue:completion:)
方法。
nightOfTheLivingDead.metaData(session: URLSession.shared, completionQueue: OperationQueue.main, completion: { (metaData, error) in
if let metaData = metaData {
// Show metadata to the user
}
})
PDMovieMetaData
是一个简单的数据结构,由description
、credits
、directorName
、runTime
和thumbnailURL
属性组成。
description
属性是一个表示电影描述的字符串。credits
属性是一个可选的字符串(String?
),表示电影的信用。directorName
是一个可选的字符串(String?
),表示电影的导演。runTime
是一个可选的字符串(String?
),表示电影的时长。thumbnailURL
是一个远程的URL(URL
),可以在该URL下找到电影的缩略图。
PDLibrary
5) 获取 PDLibrary
类提供了一种方便的方式来访问电影集和类别。该对象对于创建主屏幕、发现电影非常有用。
要获取对PDLibrary
对象的访问权限,请使用类方法library(session:completionQueue:completion:)
PDLibrary.library(session: URLSession.shared, completionQueue: OperationQueue.main) { library, error in if let library = library { // 显示电影和类别 } }
PDLibrary
对象是另一个简单的数据结构,由categories
、featured
、recentlyAdded
、mostWatched
和topRated
属性组成。
categories
属性是一个可用的PDCategory
对象数组。featured
属性是目前特惠的5部电影集。recentlyAdded
数组是最近添加的50部PD电影的集合。mostWatched
数组是根据下载次数进行排序的50部电影集合。topRated
数组是最受好评的50部电影集合。
问题和请求
如果您遇到任何错误,或者希望看到特定功能的支持,请提交GitHub问题,我会尽快回复您。