2014-04-24 2 views
0

안녕하세요, Flex를 사용하는 iOS 용 어도비 에어를 사용하는 애플리케이션을 개발 중입니다. 사용자가 스냅 샷을 찍도록하고 나의 의도는 내 api에 사진을 업로드하는 것입니다. 문제는 byteArray를 압축 한 다음 base64 문자열로 인코딩하여 앱을 보내면 1-2 분 동결됩니다.어도비 에어 멀티 스레딩?

내 질문은 : adove air에서이 프로세스를 다중 쓰레딩하는 방법이 있습니까? 백그라운드에서 진행할 수 있습니까?

어도브 네이티브 확장 기능은 자체적으로 또는 아니요로 장치의 다른 스레드를 사용하므로 어쩌면 백그라운드 인코딩을 처리하고 기본 확장자로 업로드 할 수 있습니다.

감사합니다.

+0

가난한 성능을 받아 들여야 할 것입니다,하지만 난 어떤 경우에 메탄을 사용합니다. 예 : 휴대 기기에서 jpg를 인코딩하는 것과 비슷한 문제가있었습니다. 액션 스크립트에서 약 35 초 걸렸다. ane을 사용하여 몇 밀리 초로 삶아 냈습니다. 따라서 멀티 스레딩에 대해서는 잘 모릅니다.하지만 결국 네이티브를 수행 할 때 반드시 필요한 것은 아닙니다. BTW : base64는 사진에 있어서는 좋은 선택이 아닙니다. 상당한 오버 헤드가 발생합니다 (http://stackoverflow.com/questions/11402329/base64-encoded-image-size). 어쩌면 당신은 다른 것을 사용하는 것을 고려해야합니까? –

+0

다른 옵션에는 어떤 것이 있습니까? 그것은 XML로 이동해야합니까? 어떤 생각? – Hakim

+0

서버 측에 액세스 할 수있는 경우 amf 프로토콜 (BlazeDS 또는 Alernatives) 사용을 고려하십시오. 그렇지 않다면 어쨌든 Base64를 사용해야 할 수도 있습니다. –

답변

1

AS3은 최근까지 전체적으로 단일 스레드였습니다. FP11.4 및 AIR 3.4부터는 Worker에 액세스 할 수 있습니다. 이는 기본적으로 두 번째 스레드로 작업을 오프로드합니다. 베타 지원은 3.8 또는 3.9에서 Android에 추가되었으며 현재 13.0에서 베타 버전을 벗어났습니다. Worker은 iOS에서 지원하는이 아닙니다. 이것은 iOS를 지원하기 위해 Objective-C로 컴파일해야하기 때문에 믿을 수 있습니다. 따라서 그들의 메소드는 작동하지 않습니다.

ANE에 처리를로드하는 것만 좋은 방법 일 수 있습니다. ANE는 AIR와 기본 OS API 간의 가교 역할을합니다. 이 방법이 효과가 있지만 ANE가 의도 한 범위를 넘어선다고 생각합니다.

사진이 크게 미치지 않는 한, 압축을하지 않는 것이 좋습니다. 크기 조정 사진 (BitmapData 클래스 사용)은 4S +에서 상당히 빠르므로 문제가 많은 것으로 생각하지 않습니다. (4S는 현재 3 년이 지나고 있습니다. 오래된 하드웨어를 사용하면 물건이 이상적으로 작동하지 않는다는 것을 의미합니다. 그래서 나이가 아무는이 정확하게 질문에 대한 답변하지 않습니다)

Worker Documentation

+0

이 컨텍스트에서 '압축은 png 또는 jpeg로 인코딩'이라고 읽었습니다. 실제로는 byteArray (예 : .zip)를 압축하는 것이 아니기 때문에 ane을 사용하는 것이 실제로 잘못되었을 수 있습니다. 그러나 인코딩을 사용할 때 확실히 이해할 수 있습니다.이 경우 의도 한 디자인처럼 사용되기 때문에 플래시 대신 네이티브 인코더를 사용합니다 ;-) 안드로이드 파트의 예가 있습니다 (이 질문에서) (http://stackoverflow.com/questions/17314467/bitmap-channels-order-different-in-android/17314924#17314924) –

+0

@ T.Richter 그런 경우라면, 나는 당신이 옳다고 생각합니다. Flash가 모든 종류의 미디어에 대해 끔찍한 인코딩 지원을 제공하는 것은 불행한 일입니다. –

관련 문제