我有有一個視頻在它玩tvOS應用。 基本上有兩種視頻(同一視頻的不同速度的版本)。一個是12MB大小,另一個是1.9MB。tvOS應用程序內存問題:如何解決它?
當應用程序啓動時,它運行良好(Xcode中示出了191MB)。但是,當點擊正常速度按鈕一次,內存就會達到350MB。當我分別點擊普通按鈕和快速按鈕時,這種情況會持續增加,並且一度變爲1GB +。你可以看到附件。當視頻結束並且應用程序停止時,它甚至達到了3GB。
有沒有辦法從停止解決內存問題並保存應用程序?
的另一個問題是:當蘋果電視,我們去到另一個應用程序從這個程序,並回來,視頻再次停止。但是,在模擬器中,它不會發生。有人可以幫我解決這兩個問題嗎?
這裏是我使用的代碼:
var avPlayerLayer: AVPlayerLayer!
var paused: Bool = false
func playmyVideo(myString: String) {
let bundle: Bundle = Bundle.main
let videoPlayer: String = bundle.path(forResource: myString, ofType: "mov")!
let movieUrl : NSURL = NSURL.fileURL(withPath: videoPlayer) as NSURL
print(movieUrl)
viewVideo.playVideoWithURL(url: movieUrl)
}
@IBAction func normalPressed(_ sender: Any) {
playmyVideo(myString: "normal")
}
@IBAction func forwardPressed(_ sender: Any) {
playmyVideo(myString: "fast")
}
class VideoPlay: UIView {
private var player : AVPlayer!
private var playerLayer : AVPlayerLayer!
init() {
super.init(frame: CGRect.zero)
self.initializePlayerLayer()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.initializePlayerLayer()
self.autoresizesSubviews = false
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.initializePlayerLayer()
}
private func initializePlayerLayer() {
playerLayer = AVPlayerLayer()
playerLayer.backgroundColor = UIColor.clear.cgColor
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.layer.addSublayer(playerLayer)
playerLayer.frame = UIScreen.main.bounds
}
func playVideoWithURL(url: NSURL) {
player = AVPlayer(url: url as URL)
player.isMuted = false
playerLayer.player = player
player.play()
loopVideo(videoPlayer: player)
}
func toggleMute() {
player.isMuted = !player.isMuted
}
func isMuted() -> Bool
{
return player.isMuted
}
func loopVideo(videoPlayer: AVPlayer) {
NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil, queue: nil) { notification in
let t1 = CMTimeMake(5, 100);
self.player.seek(to: t1)
videoPlayer.seek(to: kCMTimeZero)
self.player.play()
}
}
}
和一些代碼你在用什麼? –
@SamuelTulach嗨。我已經包含了我們正在使用的代碼 – BizDev
@SamuelTulach HI。請檢查我的代碼... – BizDev