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 을 잘 찾고 빌드가 잘 됩니다.

참조하시길...





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 에서 나침반의 각도값을 가져올 수 있습니다.






OpenGL ES 에서 색깔을 지정할때,

normal 값에 해당하는 색깔의 배열을

만들거나, texture 를 생성해서

색깔을 입힐 수 있습니다.

하지만, 그러고 싶지 않고 단지 

도형전체의 색이 동일하다고 하면

texture 를 입히는 것이 이미지파일 만들고 하는 것이

좀 귀찮을 수 있지요.

다음의 경우를 살펴보면 우선 첫번째 이미지는 빛의 효과를 주지 않았을 경우입니다.



이 경우는 2차원과 같은 느낌이지요. 좋지 않습니다.

다음의 경우는 색을 설정했음에도 불구하고 normal값이 지정되어 있지 않아서 빛의 효과 때문에 색이 전혀 나타나지 않는 경우입니다. 이 경우는 3차원 효과는 나타나나 색이 나타나지 않습니다.



이럴 경우에 glEnable(GL_COLOR_MATERIAL); 를 지정하면 다음과 같이 색과 3차원 효과를 모두 살릴 수 있습니다.



구글링해서 얻은 정보인데 참조하시기 바랍니다.