У меня есть настольное (macOS) приложение, которое читает видеоклипы (.mov, .m4v, .mp4 ...).Приложение считывает видеоклип как объект avAsset
следующим образом.
import Cocoa
import AVKit
class VideoViewController: NSViewController {
var videoPlayer: AVPlayer!
var videoURL: URL?
var videoDur: Double!
var videoFrameRate: Float!
var videoData: Data!
var naturalSize: CGSize!
var hasVideo = false
@IBOutlet weak var moviePlayer: AVPlayerView!
@IBOutlet weak var layerView: LayerView!
func readVideoClip(url: URL) {
let avAsset = AVURLAsset(url: url)
let videoTracks = avAsset.tracks(withMediaType: .video)
if videoTracks.count > 0 {
let videoTrack = videoTracks[0]
let playerItem = AVPlayerItem(asset: avAsset)
let avFrameRate = videoTrack.nominalFrameRate
videoPlayer = AVPlayer(playerItem: playerItem)
moviePlayer.player = videoPlayer
moviePlayer.isHidden = false
naturalSize = videoTrack.naturalSize
/* variables */
hasVideo = true
videoURL = url
videoDur = totalDuration
videoFrameRate = avFrameRate
}
}
}
Мой вопрос заключается в том, существует ли способ определить, защищен ли выбранный видеоклип защитой от копирования.Приложение уже доступно в Mac App Store.Я отправил обновление программного обеспечения для него.И они отклонили это, сказав следующее:
Мы обнаружили, что приложение позволяет пользователю выбирать защищенные от копирования файлы, такие как .m4v, и не сообщает пользователю, что файл не может быть преобразован / сохранен/revised.
Кажется, что AVPlayerView
имеет свойство canBeginTrimming
.И следующее возвращает false
с незащищенным видеоклипом.
if !moviePlayer.canBeginTrimming {
// it returns false
}
Я полагаю, что крайней мерой будет не принимать формат M4V, когда пользователь выбирает видеоклип.Спасибо.