아이폰어플개발정보2010. 10. 12. 04:59
동적으로 이미지 동영상 에니메이션만들기

#import "ImagesViewController.h"

#import "Constants.h"


#define kMinDuration 0.0

#define kMaxDuration 10.0


@implementation ImagesViewController


@synthesize imageView, slider;


- (void)dealloc

{

[imageViewrelease];

[sliderrelease];

[superdealloc];

}


- (void)viewDidLoad

{

[superviewDidLoad];

self.title = NSLocalizedString(@"ImagesTitle", @"");

// set up our UIImage with a group or array of images to animate (or in our case a slideshow)

UIImage *im5 = [[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene1"ofType:@"jpg"]]; 

UIImage *im1=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene2"ofType:@"jpg"]];

UIImage *im2=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene3"ofType:@"jpg"]];

UIImage *im3=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene4"ofType:@"jpg"]];

UIImage *im4=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene5"ofType:@"jpg"]];

NSMutableArray *ma=[[NSMutableArrayalloc]init];

[ma addObject:im1];

[ma addObject:im2];

[ma addObject:im3];

[ma addObject:im4];

[ma addObject:im5];

NSArray *arry=ma;

self.imageView.animationImages =arry;

//정적으로 동영상 만드는 방식

//self.imageView.animationImages = [NSArray arrayWithObjects:

//[UIImage imageNamed:@"scene1.jpg"],

//[UIImage imageNamed:@"scene2.jpg"],

//[UIImage imageNamed:@"scene3.jpg"],

//[UIImage imageNamed:@"scene4.jpg"],

//[UIImage imageNamed:@"scene5.jpg"],

//  nil];

imageView.animationDuration = 5.0;

[self.imageViewstopAnimating];

// Set the appropriate accessibility labels.

[self.imageViewsetIsAccessibilityElement:YES];

[self.imageViewsetAccessibilityLabel:self.title];

[self.slidersetAccessibilityLabel:NSLocalizedString(@"DurationSlider",@"")];

}


// called after the view controller's view is released and set to nil.

// For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.

// So release any properties that are loaded in viewDidLoad or can be recreated lazily.

//

- (void)viewDidUnload

{

[superviewDidUnload];

self.imageView = nil;

self.slider = nil;

}


// slown down or speed up the slide show as the slider is moved

- (IBAction)sliderAction:(id)sender

{

UISlider* durationSlider = sender;

self.imageView.animationDuration = [durationSlider value];

if (!self.imageView.isAnimating)

[self.imageViewstartAnimating];

}



#pragma mark -

#pragma mark UIViewController delegate methods


// called after this controller's view was dismissed, covered or otherwise hidden

- (void)viewWillDisappear:(BOOL)animated

{

[self.imageViewstopAnimating];

// restore the nav bar and status bar color to default

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}


// called after this controller's view will appear

- (void)viewWillAppear:(BOOL)animated

{

[self.imageViewstartAnimating];

// for aesthetic reasons (the background is black), make the nav bar black for this particular page

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

// match the status bar with the nav bar

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

}


@end

Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 9. 12. 21:19
아이폰 어플에 동적으로 이미지,동영상 만드는 방법 정리

#import "ImagesViewController.h"

#import "Constants.h"

#define kMinDuration 0.0

#define kMaxDuration 10.0

@implementation ImagesViewController

@synthesize imageView, slider;

- (void)dealloc

{

[imageViewrelease];

[sliderrelease];

[superdealloc];

}

- (void)viewDidLoad

{

[superviewDidLoad];

self.title = NSLocalizedString(@"ImagesTitle", @"");

// set up our UIImage with a group or array of images to animate (or in our case a slideshow)

UIImage *im5 = [[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene1"ofType:@"jpg"]]; 

UIImage *im1=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene2"ofType:@"jpg"]];

UIImage *im2=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene3"ofType:@"jpg"]];

UIImage *im3=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene4"ofType:@"jpg"]];

UIImage *im4=[[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"scene5"ofType:@"jpg"]];

NSMutableArray *ma=[[NSMutableArrayalloc]init];

[ma addObject:im1];

[ma addObject:im2];

[ma addObject:im3];

[ma addObject:im4];

[ma addObject:im5];

NSArray *arry=ma;

self.imageView.animationImages =arry;

//정적으로 동영상 만드는 방식

//self.imageView.animationImages = [NSArray arrayWithObjects:

//[UIImage imageNamed:@"scene1.jpg"],

//[UIImage imageNamed:@"scene2.jpg"],

//[UIImage imageNamed:@"scene3.jpg"],

//[UIImage imageNamed:@"scene4.jpg"],

//[UIImage imageNamed:@"scene5.jpg"],

//  nil];

imageView.animationDuration = 5.0;

[self.imageViewstopAnimating];

// Set the appropriate accessibility labels.

[self.imageViewsetIsAccessibilityElement:YES];

[self.imageViewsetAccessibilityLabel:self.title];

[self.slidersetAccessibilityLabel:NSLocalizedString(@"DurationSlider",@"")];

}

// called after the view controller's view is released and set to nil.

// For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.

// So release any properties that are loaded in viewDidLoad or can be recreated lazily.

//

- (void)viewDidUnload

{

[superviewDidUnload];

self.imageView = nil;

self.slider = nil;

}

// slown down or speed up the slide show as the slider is moved

- (IBAction)sliderAction:(id)sender

{

UISlider* durationSlider = sender;

self.imageView.animationDuration = [durationSlider value];

if (!self.imageView.isAnimating)

[self.imageViewstartAnimating];

}

#pragma mark -

#pragma mark UIViewController delegate methods

// called after this controller's view was dismissed, covered or otherwise hidden

- (void)viewWillDisappear:(BOOL)animated

{

[self.imageViewstopAnimating];

// restore the nav bar and status bar color to default

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}

// called after this controller's view will appear

- (void)viewWillAppear:(BOOL)animated

{

[self.imageViewstartAnimating];

// for aesthetic reasons (the background is black), make the nav bar black for this particular page

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

// match the status bar with the nav bar

[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

}

@end



출처 : http://blog.naver.com/PostList.nhn?blogId=philipousys¤tPage=14
Posted by 오늘마감

댓글을 달아 주세요

아이폰뉴스2010. 8. 22. 19:58
애플 스티브잡스 아이폰4G (WWCD 2010) 발표 동영상
 

아이폰4 발표 풀동영상

출처 : http://blog.naver.com/PostView.nhn?blogId=baek2187&logNo=150087857709
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 8. 19. 15:22
아이폰 어플 개발에서 카메라로 동영상 찍을때 kUTTypeMovie 에러 해결법
출처 : http://cafe.naver.com/mcbugi


카메라를 동영상을 찍기 위해서 다음과 같은 코드가 많이 나옵니다.
--------------------------------------------------

- (IBAction)getCameraPicture:(id)sender {

UIImagePickerController *picker = [[UIImagePickerControllerallocinit];

picker.delegate = self;

picker.allowsEditing = YES;

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

picker.mediaTypes = [NSArrayarrayWithObject:(NSString *)kUTTypeMovie];

[selfpresentModalViewController:picker animated:YES];

[picker release];

}

--------------------------------------------------
위 소스는 오픈 소스나, 레퍼러나 책에서 많이 나오는 형식인데요.
저는 버튼 누르면 실행하라고 할려고 IBAction 으로 만들었습니다.
대충 설명하자면 UIImagePickerController 에 변수 할당을 하고
거기에 각 속성값을 지정을 해 준거데
동영상을 찍기 위해서는 sourceType 과 mediaTypes 를 위 코드 같이 설정을 해 주어야 하는 것이죠.
근데 요것이 위 코드대로 하면 바로 에러가 뜹니다.
picker.mediaTypes = [NSArrayarrayWithObject:(NSString *)kUTTypeMovie];
이 부분에서 kUTTypeMovie 요것 때문에 에랴가 뜹니다.

보통 kUTTypeMovie 이 변수는 헤더 파일에서 선언을 해 주어야 하는 건데요.
헤더 파일에 어떻게 선언을 하라는 말이 쉽게 나와 있는데가 거의 없더라고요.
구글링을 통해 어찌어찌해서 알게된 내용이 
kUTTypeMovie 이 변수는 MobileCoreServices.framework 에서 사용되는 거라고 하더군요.

그래서 헤더파일에 다음과 같은 코드를 삽입해 주셔야 합니다.

#import 

그럼 일단 코드상에서는 에러가 없는 것으로 나옵니다.

그런데 이렇게 하게 되면 빌드 상에 에러가 2 개 표시가 됩니다.

이게 사람 미치게 하더군요.

구글검색 전 페이지 다 해보고 레퍼런스 사이트 다 뒤져봐도 해결법이 안 나오더라고요.

그러다가 우연찮게 확인된 사실이 아주 중요한 포인트가 되었죠.

프레임 워크는 프로젝트에서 기본적으로 가지고 있는데

거기에 위에서 사용되는 MobileCoreServices.framework 를 추가를 해 주어야 하는 것이였습니다.

Xcode 에 Groups & Files 보시면 Frameworks 폴더가 보이실 겁니다.

그 폴더를 선택하고 오른쪽 클릭을 하게 되면

Add 가 있고 그 다음에 Existing Frameworks... 메뉴가 있습니다.

여기서 MobileCoreServices.framework 프레임웍을 추가를 해 주어야 모든게 정상적으로 돌아가게 됩니다.

질문도 올려보고 검색도 해 봤지만 제가 지금 정리한 내용은 없더라고요.(외국 유명 아이폰 개발 사이트 포함)

이 내용이 다른 분들에게 큰 도움이 되었으면 합니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=74hans&logNo=109927806
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 26. 09:52
아이폰에 동영상을 넣어봅시다. 편리한 무료 동영상 인코더 - Daum팟인코더 (아이폰, 아이팟터치)

아이폰, 아이팟터치에 동영상 넣으려면 동영상을 아이폰 포멧에 맞게 변환해야 합니다. 하지만 국내환경과 달라 초보자들에겐 어려울 수 있습니다. 아이튠즈에서 동영상 변환까지 지원해 줬더라면 훨씬 편했을텐데 아쉽습니다.

Mac에서는 QuickTime을 이용해 아이폰, 아이팟터치용 동영상으로 변환할 수 있습니다만 변환할 수 있는 동영상 포멧에 제약이 많고 동영상 포멧이 WMV라면 난감하실 겁니다. 거기다 자막이 있는 동영상이라면?

저도 무료로 쉽게 쓸 수 있는게 없을까 찾아보다가 Daum 팟인코더를 쓰게 됐습니다. 간단한 조작으로 변환되며 자막이 있으면 자막까지 합쳐져서 변환됩니다. 거기에 무료이고 Daum이 만들었다는게 믿음이 갑니다.

Daum(다음)팟인코더 다운받기

<Daum 팟 인코더>

Daum팟 인코더 초기화면입니다. 동영상 파일은 불러오기 버튼을 이용하셔도 되지만 탐색기에서 드래그로 집어넣는게 제일 편합니다. 그런데 삭제할 때는 드래그나 마우스 오른쪽 버튼, Delete키 지원이 안되는군요. 삭제할 목록을 체크하신 후 삭제버튼을 클릭해야 삭제됩니다.

인코딩할 동영상을 선택하셨으면 인코딩옵션에 휴대기기용 -> 애플 -> iPod Touch 고화질(AVC)를 선택합니다. 중화질과 용량차이는 좀 나지만 거의 원본에 가까운 깨끗한 화질을 동영상을 감상하시려면 AVC를 선택하시는게 낫습니다. 2시간짜리 영화 인코딩하면 800~900MB정도 되는데 아이폰, 아이팟터치 용량을 생각하면 큰게 아닙니다.

아이폰, 아이팟터치 외에도 국내에 출시된 거의 모든 휴대기기의 인코더를 제공합니다. 세심하게 분류해 놓은게 맘에 듭니다.

PC저장용을 살펴보니 플래쉬 비디오로도 변환시켜 주네요. 참~다양한 포멧을 지원합니다.

이젠 직접 동영상을 변환해 보겠습니다.

변환하고 싶은 동영상을 드래그로 넣습니다. 인코딩 옵션을 애플 -> iPod Touch 고화질(AVC)로 선택한 후 인코딩 시작을 누릅니다.

동영상이 변환되고 있습니다. 인코딩 중 화면을 미리볼 수 있고 인코딩 후 시스템 종료 옵션까지 있네요. 자기전에 인코딩 걸어놓고 주무신다음 아침에 일어나서 아이폰에 넣고 출근하시면 되겠네요.

인코딩 시간과 용량은 - (참고로 제 컴퓨터 CPU는 E8400 (코어2듀어 3GHz) 입니다.)

147분 짜리 영화를 인코딩하는데 걸리는 시간은 9~10분, 용량은 849메가

94분짜리 애니메이션은 자막포함해서 인코딩하는데 걸리는 시간은 6~7분, 용량은 419메가 나왔습니다.

 <Death Spank 라는 게임동영상입니다. 원본은 WMV 파일입니다.>

 <몬스터 Vs 에이리언 이라는 영화의 한장면입니다. 자막까지 깔끔하게 인코딩 됐습니다.>

Daum팟 인코더에 동영상 편집기능이 있지만 윈도우 기본제공 프로그램인 Windows Movie Maker로 편집하신 후 동영상 포멧만 팟인코더를 이용하시는게 나을듯 보입니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=ghostsbs&logNo=94671604
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 14:20
무료 아이폰 SDK 동영상 강좌
1강 iPhone SDK 강좌를 들어가면서~~


출처 : http://blog.naver.com/PostView.nhn?blogId=joo2350&logNo=40107260029
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플정보2010. 6. 24. 07:58
Drum Meister 연주 동영상 모음



출처 : http://blog.naver.com/PostView.nhn?blogId=rioms81&logNo=60107073459
Posted by 오늘마감

댓글을 달아 주세요

아이폰기본사용2010. 6. 22. 03:51
아이폰에 동영상 넣는법 (다음팟인코더 사용법)

아이폰에 동영상 넣는법 강좌

1. 검색을 통하여 다음팟인코더를 다운받아 설치합니다.

(http://file.naver.com/pc/view.html?fnum=234386&cat=40)

아이폰에서는 MP4 파일을 동영상으로 인식하기 때문에 다음팟인코더를 이용하여 파일을 MP4형식으로 바꿔주어야 합니다. 바로 avi 형식의 파일을 mp4형식으로 바꿔줄수 있는 간편한 프로그램이 다음팟인코더 입니다.

2. 다음팟인코더를 실행하여 화면 중간에 있는 불러오기를 클릭합니다.

원하는 동영상을 선택하여줍니다 (같은 폴더안에 자막이 있으면 자막O이라는 표시가 뜨며 자막까지 같이 인코딩 되게 됩니다.)

3. 하단에있는 탭메뉴중 휴대용기기를 선택해주고 애플을 선택 하여줍니다.

iphone 중화질, iPhone 고화질중 원하는 화질을 선택하여 줍니다.

4. 하단에있는 저장폴더를 원하는 저장폴더로 바꿔준후 오른쪽하단에 있는 인코딩 시작

클릭합니다.

5. 인코딩이 완료되면 아이튠즈를 연결하여 아이폰에 넣어주시면 되겠습니다.

아이튠즈 - 보관함 - 동영상 (인코딩된 파일을 끌어서 집어 넣는다. mp4파일 )
장비 - iphone 로 들어가 동영상 탭에서 동기화 시켜준다.

6. 아이폰을 킨후 iPod - 비디오에서 동영상이 제대로 들어갔는지 확인해 줍니다.

영화가 정상적으로 들어가 있습니다.

아이튠즈를 통한 동영상 동기화 방법을 모르시는 분들은 제블로그 아이튠즈강좌에서

동영상 넣는법을 보시면 됩니다.

아이폰에 동영상,음악 넣는법 보러가기



출처 : http://blog.naver.com/PostView.nhn?blogId=kjw01255&logNo=50086862002
Posted by 오늘마감

댓글을 달아 주세요