Yêu cầu thg 8 9, 2018 12:22 CH 151 0 0
  • 151 0 0
0

Hiển thị nhiều video giống facebook, intargram

Chia sẻ
  • 151 0 0

Em chào mọi người!.Hiện tại em muốn hiển thị video giống facebook, nhưng em hiển thị bằng AVPlayer máy chạy rất chậm và nặng? Em không biết giải quyết như thế nào? Có anh chị nào có cách hay hướng dẫn em với ạ! Em cảm ơn mọi người nhiều!

thg 8 9, 2018 12:46 CH

Bạn post source code lên sẽ dễ hiểu hơn đó.

thg 8 10, 2018 1:23 SA

@Katoji Bạn ý đang muốn tìm giải pháp khác tối ưu hơn để play video giống Facebook cho ứng dụng IOS, code với Swift4. Bạn có kinh nghiệm hay giải pháp gì share cho bạn ấy với.

thg 8 10, 2018 1:45 SA

Thông thường chỉ cần play ở main thread là sẽ mượt mà thôi. Nhưng hiện tượng của bạn mình chưa nghĩ ra được nguyên nhân nên muốn xem code đó.

thg 8 10, 2018 3:39 SA

@Katoji anh có ở SG không? cuối tuần hẹn đi cf chỉ giáo em cho tiện được không anh?

thg 8 10, 2018 3:42 SA

@yukihoaian Mình ở HN cơ : )) bạn post code lên github đi. Như vậy tiện theo dõi hơn.

thg 8 10, 2018 3:52 SA

@Katoji dạ tại code này em làm dự án của cty. nên public hơi khó 😄. để em hỏi chị kia thử. em mới học IOS sơ sơ nhưng vào cty đưa ngay cái app này em cũng đang bế tắc. 😄

thg 8 10, 2018 3:54 SA

@Katoji à anh ơi! còn vụ "leak memory " mình fix được không anh? nãy em chạy app bị văng ra vì lỗi này nữa: "Message from debugger: Terminated due to memory issue"

thg 8 10, 2018 3:58 SA

@yukihoaian ah mình xin lỗi. Mình tưởng code bạn tự học 😄 Leak memory fix được bạn. Vì mình không debug nên hơi khó nói.

Bạn tham khảo về leak memory tại đây nhé: https://niviki.com/quan-ly-bo-nho-trong-swift/

thg 8 10, 2018 4:04 SA

@yukihoaian Còn vụ video, trường hợp streaming thì mình làm như sau.

 if let url = URL(string: "http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4") {
            player = AVPlayer(url: url)
            
           //Tạo ra layer chứa frame của AVPlayer
            let playerLayer = AVPlayerLayer(player: player)
            playerLayer.frame = view.frame
            view.layer.addSublayer(playerLayer)

            player?.play()
        }
thg 8 10, 2018 6:35 SA

@yukihoaian Bạn mới học iOS sơ sơ + add vào dự án thì chắc là sẽ có người hướng dẫn bạn phải không. Mình nghĩ tốt nhất là bạn nên chủ động hỏi người hướng dẫn của bạn. Vì người đó (có thể) là người rõ nhất về cả business và code, nên giải pháp của người đó sẽ chính xác hơn cả.

Còn cái này

Message from debugger: Terminated due to memory issue"

có thể là vì bạn load quá nhiều video 1 lúc, dẫn đến việc tràn bộ nhớ (app dùng nhiều RAM quá bị out)

Trong trường hợp này bạn chỉ nên chạy 1 video 1 lúc, các video chưa chạy sẽ không load AVPlayer lên, mà chỉ hiển thị ảnh thumbnail cho nó. Đơn giản vì người dùng cũng không cần thiết phải xem 2 video chạy 1 lúc, việc đó chỉ làm app của bạn tốn nhiều bộ nhớ hơn mà thôi.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí