🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

1177閲覧

ios13のiphoneで、アルバムのビデオのURLを取得する方法を教えてください。swift

tatsuakikuroda

総合スコア10

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2019/10/14 10:34

PHImageManager().requestAVAsset(forVideo: asset,
options: option,
resultHandler: { (avAsset, audioMix, info) in
if let tokenStr = info?["PHImageFileSandboxExtensionTokenKey"] as? String {
let tokenKeys = tokenStr.components(separatedBy: ";")
let urlStr = tokenKeys.filter { $0.contains("/private/var/mobile/Media") }.first
self.slowPath.append(urlStr!)
self.appendingFlag=false
}else{//cloud上videoはdeleteと登録して
self.slowPath.append("delete")
self.appendingFlag=false
}
//print(info as Any)
})

というコードでios13.1までは、実機にあるビデオのURLを取得できていましたが、
iPhoneをios13.2にバージョンアップしましたところ、動かなくなりました。
print(info as Any)で見てみますと。
Ios13
Optional([AnyHashable("PHImageResultRequestIDKey"): 1, AnyHashable("PHImageResultIsDegradedKey"): 0, AnyHashable("PHAdjustmentDataKey"): <PHAdjustmentData: 0x280ccbc90> identifier=com.apple.video.slomo version=1.1 data=0x283b38700 (200)])

Ios12
Optional([AnyHashable("PHImageFileSandboxExtensionTokenKey"): bb942cf34854c3b049c8049e4b03300d168c876a;00;00000000;00000000;00000000;000000000000001b;com.apple.avasset.read-only;01;01000003;000000010125916f;01;/private/var/mobile/Media/DCIM/104APPLE/IMG_4145.MOV, AnyHashable("PHImageResultWantedImageFormatKey"): 20002, AnyHashable("PHAdjustmentDataKey"): <PHAdjustmentData: 0x2803f23d0> identifier=com.apple.video.slomo version=1.1 data=0x2803f2be0 (200), AnyHashable("PHImageResultDeliveredImageFormatKey"): 20000, AnyHashable("PHImageResultIsInCloudKey"): 0])

となって、URLが見れないようです。
どう対処したらよいでしょうか。よろしくお願い申し上げます。

asset.value(forkey:"filename")でfile名までは取得できるようですが、URLを取得する方法が分かりません。
なにとぞ、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hameji

2019/10/14 12:29

とても見づらいので、 コードの部分は一番上、一番下の行にそれぞれ「```」をつけて、囲んでください。 可能なら、インデント(空白)をブロック( {} の開くとこと閉じるとこ )を揃えてもらえると見やすいです。
guest

回答1

0

自己解決

記載方法もわからないまま書いていてすみません。
ご指摘ありがとうございました。
ネットを調べていて下記なようなのを探し当てることが出来ました。
どうにか動くようになりました。
有難うございました。
``
let options=PHVideoRequestOptions()
options.version = .original
PHImageManager.default().requestAVAsset(forVideo: asset,
options: options){(asset:AVAsset?,audioMix, info:[AnyHashable:Any]?)->Void in

if let urlAsset = asset as? AVURLAsset{ let localURL=urlAsset.url as URL self.slowPath.append(localURL.path) self.appendingFlag=false print(localURL) }else{ self.slowPath.append("delete") self.appendingFlag=false } }

``

投稿2019/10/14 13:51

tatsuakikuroda

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問