作者qnismine (qn是我的)
看板MacDev
標題[問題] 有關rtsp image thread的問題
時間Mon Jun 29 15:03:20 2015
live555 接收rtsp的stream
再丟給ffmpeg來decode h.264
在view controler裡 寫了一個function 丟AVFrame進來
經過一連串的 CGBitmapInfo CFDataRef ....等等
轉成UIImage 的格式
再來就不知道怎麼丟到uiimageview顯示了...
在android 有個handler可以接收message 在將 imageview 印出影像
不知道ios有沒有??
有用 UIImageWriteTosavedPhotosAlbum 將圖檔存在相簿 是完整的圖
也可以一連串一直收...
可是就是無法印到UiImageview的容器裡顯示出來
--
1F:→ gbcowandy:忠孝不能兩全06/18 15:40
2F:→ XSZX:忠孝不能兩全06/18 15:41
3F:推 YesNoter:樓上你們再一起好了06/18 15:41
4F:推 bseiqwkbk:樓上你們再一起好了06/18 15:42
5F:推 Narcissuss:不是還有鴨頭的掛06/18 15:42
6F:推 lucifer19:不是還有鴨頭的掛06/18 15:42
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.167.9
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1435561404.A.D8B.html
7F:推 Blueshiva: uiimageview.image = image 06/29 15:05
恩 是這樣沒錯
我rtsp 協定是放在
dispatch_async裡面一直讓他跑
ffmpeg 每一張decode完之後會跑一個function在裡面做出 UIImage的圖
我在那個function放入一個main thread
dispatch_async(dispatch_get_main_queue(),^{
self.uiimageview.image = image
}));
可是卻都沒有顯示T_T
※ 編輯: qnismine (1.34.167.9), 06/29/2015 15:13:29
8F:→ Esvent: 確定UIImage沒有問題的話 那就是檢查UIImageView囉 06/29 22:24
9F:→ Esvent: 檢查看看是否有實體化、是否有加入super view、frame是不 06/29 22:26
10F:→ Esvent: 是合法之類的 06/29 22:26
11F:推 liddle: 該不會沒在 ui thread 吧? 07/01 00:08
12F:→ liddle: 要確認 image 有傳入 07/01 00:10
後來做測試...在
UIImage *image = [UIImage imageNamed:@"smallqq.jpg"];
self.uiimageview.image = image;
NSLog(@"after set image");
中斷點設在nslog那 我去看self 裡面uiimageview裡面的值竟然是nil...
可是我把同樣的程式碼放到viewdidload 竟然OK
為什麼放到thread 卻無法給值呢?? 好難理解阿~><
※ 編輯: qnismine (1.34.167.9), 07/01/2015 15:44:32
13F:→ kingof543: viewDidLoad完 uiimageview才會被建起來吧 07/15 21:41