'나의 이야기..'에 해당되는 글 447

  1. 2010.08.05 [iPhone] AVFoundation 빌드오류에 관해
  2. 2010.08.05 [영화] 인셉션 (Inception)
  3. 2010.07.31 [iPhone] Compass 구현하기

AVFoundation 오류에 관해

WWDC 10 에서 카메라에 관한 데모를

보여준 내용이 있습니다. 

아이튠즈에서 볼 수 있는 session video제목은

"Using the Camera with AV Foundation" 입니다.

여기서 카메라의 하부 API 를 이용해서 조작하는 

데모들이 선보입니다. 

WWDC 10 sample 코드를 다운로드 받으면 해당 코드들을 볼 수 있습니다.

AVFoundation  관련 코드 중에 FindMyIcon의 Process 를 실행 시켰는데, 빌드 에러가 났답니다.

AVFoundation 을 찾지 못하는 에러였지요.

cannot find protocol declaration for 'AVCaptureVideoDataOutputSampleBufferDelegate'

그래서 검색해 보니 다름이 아니라 시뮬레이터로 설정해놓으면 빌드에러가 나더군요.

Device 로 설정하고 나면 AVFondation 을 잘 찾고 빌드가 잘 됩니다.

참조하시길...





영화 | Posted by hyena0 2010. 8. 5. 13:38

[영화] 인셉션 (Inception)



Inception

영화 인셉션이 크리스토퍼 놀란 감독의

작품이라는 이유외에도 여러 입소문에 힘입어

불법다운로드가 아닌 극장에서 보게 되었답니다.

물론 고화질 영상이 있었다면 달랐겠지만,

어쨌건 심야시간에 관람을 한 후,

감탄을 금할 수 없었습니다.

Inception 이라는 단어는 '개시'라고 번역되어 있는데,

영화 문맥상으로는 어떤 생각을 주입하게 되는 것을 의미합니다. 물론 그 생각을 주입해서

그 생각이 시작이 되어 사실로 믿게 되므로 '개시'라고 하는 것 같긴 합니다.



'인셉션'에서 꿈이라는 소재를 가지고 남의 생각을 훔치고 주입한다는 기발한 아이디어와

미려한 CG, 배우들의 명연기, 명연출 들이 한데 어우러져 훌륭한 영화를 만들어 놓았습니다.

감독이 무기 등에 집착하는 것같긴 하지만, 영화의 문맥상 흐트러짐은 없습니다.

매트릭스에서 가상의 인물들이 코드로 인해 만들어진 것이라면 여기서는 무의식에 의해 만들어지고

망각에 갇혀버릴 수 있다는 것이 차이점이라고 할 수 있겠지요.

우리가 꿈을 꿀때 경험했던 것들을 나름대로 정의해 놓고 있어서 더 와닿는 것 같습니다.

가령, 중력이 급작스럽게 변하는 것을 '킥'이라고 하는데, 우리도 잘때 꿈속에서 갑자기 넘어지는 그런 것을 경험하면

잠이 깨곤 하지요. 어른들은 이때 키클라고 그런다고 하시지만요... ^^

꿈속에서 또다른 꿈을 꾸게 하면서 영화는 점점더 치밀하고, 복잡하게 전개되는데요.

죽은 부인 '멜'이 의식에 침투하면서 극의 전개는 혼란스러워 지게 됩니다. 

'피셔'로부터 자신이 회사를 분리할 수 있게 카타르시스를 느낄 수 있게 꿈을 조작하게 되고

이들이 손에 땀을 쥐게하는 촌각을 다투는 방식으로 꿈에서 다시 복귀하고, 그들의 목적을 달성하는 부분은 

역으로 관객들에게 카타르시스를 느끼게 해줍니다.

대부분의 영화평에서 마지막 장면을 극의 반전이라고 했지만,

저는 이렇게 생각해 보고 싶네요.

코브의 토템이 쓰러질듯 안쓰러지고 계속 도는 장면을 보여줍니다.

그리고 화면이 닫히며 영화는 끝을 내죠.

토템이 쓰러지지 않는다면, 아직 꿈 속에서 코브는 헤매고 있는 것이고, 쓰러진다면 이건 현실일 겁니다.

과연 어떤게 진실일지 감독은 관객들에게 아슬아슬한 토템의 모습을 보여주며

궁금증을 남깁니다. 관객에게 결론을 지으라는 것 아닐까요...^^

그렇다면 저는 해피엔딩으로 선택하고 싶네요...^^





Interesting/iPhone | Posted by hyena0 2010. 7. 31. 23:52

[iPhone] Compass 구현하기



iPhone 에서 나침반을 구현하려고

할 때, 아래와 같은 작업을 수행하면 됩니다.

사용하고자 하는 클래스에서

CLLocationManagerDelegate의 프로토콜

사용을 선언합니다.

CLLocationManagerDelegate 에는 다음의 

메소드가 있습니다. 

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading


이 메소드를 구현해 주고,  CLLocationManager에서 startUpdatingHeading를 실행시켜주면

구현된 위의 메소드를 실행해서 Heading값을 가져오게 됩니다.

아래는 간단히 예제를 정리해 봅니다.

* header file

#import <XX.h>

#import <XXX.h>

@interface 클래스명 : 슈퍼클래스명 <CLLocationManagerDelegate>{


   .....내용..... 


}


* implementation file 
....

- (void)viewDidLoad { //viewcontroller 라고 가정

        CLLocationManager *locationManager=[[CLLocationManager alloc] init];

locationManager.delegate=self;

locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters;

 

[locationManager startUpdatingHeading];//heading값 호출 시작


.....내용.....


}
....

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{

headingData = newHeading.magneticHeading;//heading 값 중 자기장 값 가져오기

NSLog(@"Magnetic heading value : %f", headingData);//로그로 확인


        ...기타 추가 구현....


}


위와 같이 구현하면 headingData 에서 나침반의 각도값을 가져올 수 있습니다.