Tôi đang tìm kiếm trợ giúp về sự cố hiệu suất trong ứng dụng iOS dựa trên Mục tiêu-C.Làm cách nào để tôi có thể ghi lại màn hình với hiệu suất có thể chấp nhận được trong khi vẫn giữ nguyên giao diện người dùng?
Tôi có ứng dụng iOS chụp nội dung của màn hình bằng phương thức renderInContext của CALayer. Nó cố gắng chụp đủ khung màn hình để tạo video bằng AVFoundation. Việc ghi màn hình sau đó được kết hợp với các yếu tố khác cho mục đích nghiên cứu về khả năng sử dụng. Trong khi màn hình đang được chụp, ứng dụng cũng có thể hiển thị nội dung của UIWebView, đi qua mạng để tìm nạp dữ liệu, v.v ... Nội dung của chế độ xem Web không nằm trong tầm kiểm soát của tôi - đó là nội dung tùy ý từ Web.
Thiết lập này đang hoạt động nhưng như bạn có thể tưởng tượng, nó không trơn nhẵn. Vì lớp phải được hiển thị trên chuỗi chính, có nhiều giao diện người dùng hơn tôi muốn. Những gì tôi muốn làm là để có một thiết lập, nơi đáp ứng của giao diện người dùng được ưu tiên hơn chụp màn hình. Ví dụ: nếu người dùng đang cuộn chế độ xem Web, tôi muốn thả khung trên bản ghi hơn là có trải nghiệm cuộn khủng khiếp.
Tôi đã thử nghiệm một số kỹ thuật, từ dispatch_source phối hợp để gửi yêu cầu chụp khung dưới dạng các khối đến hàng đợi chính tới CADisplayLink. Cho đến nay tất cả họ dường như thực hiện về giống nhau. Việc chụp khung hiện đang được kích hoạt trong drawRect của giao diện chính của màn hình.
Những gì tôi yêu cầu ở đây là: được đưa ra ở trên, bạn sẽ gợi ý những kỹ thuật gì để đạt được mục tiêu của mình? Tôi nhận ra câu trả lời có thể là không có câu trả lời tuyệt vời ... nhưng tôi muốn thử bất cứ điều gì, tuy nhiên wacky nó có thể âm thanh.
LƯU Ý: Dù kỹ thuật nào cần phải thân thiện với App Store. Không thể sử dụng một cái gì đó giống như CoreSurface hack mà Display Recorder sử dụng/sử dụng.
Cảm ơn sự giúp đỡ của bạn!
Điều này có được thực hiện trong Mục tiêu-C không? Bất kể, quá trình ghi âm có khả thi hay không và nếu yêu cầu cuối cùng mất quá lâu thì dừng ghi hình cho các khung X (chọn một số)? Tôi không có điểm kinh nghiệm của iOS, nhưng đây là điều đầu tiên tôi nghĩ đến. – Jared
Xin chào - vâng, tất cả Obj-C ... Vì 'quá dài' thay đổi đáng kể giữa các thiết bị do sự khác biệt của CPU, điều này có thể sẽ ít chính xác hơn mức cần thiết. – Hunter
Có thể làm điều gì đó tương tự như một cuộc gỡ lỗi javascript? https://github.com/pixelspring/NKBlueprint-Obj-C-Mix-Edition hoặc có thể giám sát việc sử dụng CPU trước cuộc gọi? http://stackoverflow.com/questions/12889422/ios-cpu-usage-for-each-process-using-sysctl – Jared