我有一个读取视频剪辑(.mov、.m4v、.mp4...)的桌面 (macOS) 应用程序。应用程序将视频剪辑作为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,并且不会通知用户该文件无法转换/保存/修改。
似乎AVPlayerView
有财产canBeginTrimming
。以下返回false
一个不受保护的视频剪辑。
if !moviePlayer.canBeginTrimming {
// it returns false
}
我想一个极端的措施是在用户选择视频剪辑时不接受 M4V 格式。谢谢。