ディスクに保存して、通知サービスの拡張機能でビデオを再生しました。ここで、通知サービス拡張機能でストリーミング URL を添付ファイルとして再生したいと考えています。添付ファイルとして URL を直接渡そうとしましたが、変数に nil が返されますattach1
。
以下は私のコードです:
import UserNotifications
import UIKit
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
//Media
func failEarly() {
contentHandler(request.content)
}
guard let content = (request.content.mutableCopy() as? UNMutableNotificationContent) else {
return failEarly()
}
guard let attachmentURL = content.userInfo["attachment_url"] as? String, let url = URL(string: attachmentURL) else {
return failEarly()
}
// Saving streaming url video
var attach1 : UNNotificationAttachment?
do {
attach1 = try UNNotificationAttachment(identifier: request.content.categoryIdentifier, url: url, options: nil)
} catch {
failEarly()
}
content.attachments = [attach1] as! [UNNotificationAttachment]
contentHandler(content.copy() as! UNNotificationContent)
}
override func serviceExtensionTimeWillExpire() {
// Called just before the extension will be terminated by the system.
// Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
contentHandler(bestAttemptContent)
}
}
}
私のストリーミング URL はYoutubeからのものです。
どんな助けでも大歓迎です。