コードのインストール
ココアポッド
Podfile
に以下のコードを追加します。
source 'https://github.com/CocoaPods/Specs.git'
# Match the Version with the Project's Minimum Supported Version
# Shoplive iOS SDK requires iOS 11.0 or later.
platform :ios, '11.0'
use_frameworks!
# Set the Project Target for Shoplive iOS SDK Installation
target 'ShortformProj' do
pod 'ShopliveShortformEditorSDK', '1.6.0'
pod 'ShopliveSDKCommon', '1.6.0'
end
Swiftパッケージマネージャー
Package Dependencies
に以下を追加します。
dependencies: [
.package(url: "https://github.com/shoplive/shortform-ios", .exact(from: "1.6.0")),
.package(url: "https://github.com/shoplive/common-ios", .exact(from: "1.6.0"))
]
インストールが失敗した場合は、キャッシュをクリアします。
ターミナルで次のコマンドを実行して、キャッシュをクリアします。
rm -rf ~/Library/Caches/org.swift.swiftpm
rm -rf ~/Library/org.swift.swiftpm
ShopLiveShortformEditorSDK は FFMpeg ライブラリに依存しています。
ターミナルで次のコマンドを実行して、キャッシュをクリアします。
以下のFFMpeg SPMまたはお好みのバージョンのFFMpegライブラリを追加してください
dependencies: [
.package(url: "https://github.com/tylerjonesio/ffmpeg-kit-spm/", .branch(from: "main"))
]
AccessKey の適用
import ShopliveSDKCommon
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
ShopLiveCommon.setAccessKey(accessKey: "YOUR_ACCESSKEY") //required
return true
}
}
アクセスキーとシークレットキーは、Shopliveの担当者にご確認ください。
ShopLiveEditorの適用
Shopliveメディアピッカー
このクラスでエディターの機能を使用したい場合は、Shoplive独自のAlbumPickerを使用できます。
import ShopliveSDKCommon
import ShopLiveShortformEditorSDK
class ViewController : UIViewController {
func startMediaPicker() {
ShopLiveMediaPicker.shared
.setDelegate(self)
.setPermissionHandler(nil)
.start(self, type: .image) // type : .video
}
}
extension ViewController : ShopLiveMediaPickerDelegate {
func onShopLiveMediaPickerError(error : ShopLiveCommonError) {
}
func onShopLiveMediaPickerDidPickVideo(absoluteUrl: URL, relativeUrl: URL) {
}
func onShopLiveMediaPickerDidPickImage(imageUrl: URL) {
print("Picker Image Selected image: \(imageUrl)")
let image = UIImage(contentsOfFile: imageUrl.path)
coverPickerImageResultPopUp.setResultImage(image: image)
coverPickerImageResultPopUp.alpha = 1
ShopLiveMediaPicker.shared.close()
}
func onShopLiveMediaPickerCancelled() {
}
}
Shopliveビデオエディター
このクラスでエディターの機能を使用したい場合は、ShopLive独自のVideoEditorを使用できます。
import ShopliveSDKCommon
import ShopLiveShortformEditorSDK
class ViewController : UIViewController {
func startVideoEditor() {
let cropOption = ShopliveVideoEditorAspectRatio(width: OptionSettingModel.editorWidth,
height: OptionSettingModel.editorheight,
isFixed: OptionSettingModel.editorIsFixed)
let trimOption = ShopliveVideoEditorTrimOption(minVideoDuration: 3,
maxVideoDuration: 90)
let videoOutPutOption = ShopLiveShortformEditorVideoOuputOption(videoOutputQuality: .max,
videoOutputResoltuion: ._1080)
let visibleContents = ShopLiveShortFormEditorVisibleContent(isDescriptionVisible: OptionSettingModel.editorShowDescription,
isTagsVisible: OptionSettingModel.editorShowTags,
editOptions: [.volume])
ShopliveVideoEditor.shared
.setPermissionHandler(nil)
.setConfiguration(.init(videoCropOption: cropOption,
videoOutputOption: videoOutPutOption,
videoTrimOption: trimOption,
visibleContents: visibleContents))
.setDelegate(self)
.start(self, data: .init(videoUrl: localUrl,isCreatedShortform: true))
}
}
extension ViewController : ShopLiveVideoEditorDelegate {
func onShopLiveVideoEditorError(error : ShopLiveCommonError) {
}
func onShopLiveVideoEditorVideoConvertSuccess(videoPath : String) {
}
func onShopLiveVideoEditorUploadSuccess(shortsId : String) {
ShopLiveMediaPicker.shared.close()
}
func onShopLiveVideoEditorCancelled() {
}
}
Shopliveカバーピッカー
このクラスでエディターの機能を使用する場合は、ShopLive 独自の CoverPicker を使用できます。
CoverPicker を使用すると、作成した短いフォームのカバー写真を変更できます。
import ShopliveSDKCommon
import ShopLiveShortformEditorSDK
class ViewController : UIViewController {
func startCoverPicker() {
let cropOption = ShopLiveShortFormEditorAspectRatio(width: 9,
height: 16,
isFixed: true)
let visibleActionButton = ShopLiveCoverPickerVisibleActionButton(editOptions: [.crop])
ShopLiveCoverPicker.shared
.setConfiguration(.init(cropOption: cropOption,
visibleActionButton: visibleActionButton))
.setDelegate(vc)
.start(vc, data: .init(videoUrl: videoUrl,shortsId: nil))
}
}
extension ViewController : ShopLiveCoverPickerDelegate {
func onShopLiveCoverPickerError(error : ShopLiveCommonError) {
}
func onShopLiveCoverPickerCoverImageSuccess(image : UIImage?) {
}
func onShopLiveCoverPickerUploadSuccess(shortsId : String) {
ShopLiveMediaPicker.shared.close()
}
func onShopLiveCoverPickerCancelled() {
}
}