Asked Aug 9th, 2018 12:22 p.m. 153 0 0
  • 153 0 0
0

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

Share
  • 153 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!

Aug 9th, 2018 12:46 p.m.

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

0
| Reply
Share
Aug 10th, 2018 1:23 a.m.

@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.

0
| Reply
Share
Aug 10th, 2018 1:45 a.m.

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 đó.

0
| Reply
Share
Aug 10th, 2018 3:39 a.m.

@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?

0
| Reply
Share
Aug 10th, 2018 3:42 a.m.

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

0
| Reply
Share
Aug 10th, 2018 3:52 a.m.

@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. 😄

0
| Reply
Share
Aug 10th, 2018 3:54 a.m.

@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"

0
| Reply
Share
Aug 10th, 2018 3:58 a.m.

@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/

0
| Reply
Share
Aug 10th, 2018 4:04 a.m.

@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()
        }
+1
| Reply
Share
Aug 10th, 2018 6:35 a.m.

@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.

+1
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.