일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 갤럭시탭S8울트라
- Bidirectional Associative Memory
- hopfield network
- 구글 앱 엔진
- Neural Network
- 물걸레로봇청소기추천
- 신경망
- 동아리
- 나르왈프레오
- 파이썬
- Friendship
- 인공지능
- 하이퍼바이저
- 패턴인식
- 물걸레자동세척로봇청소기
- 멤버십
- Python
- Google App Engine
- 삼성전자 소프트웨어멤버십 SSM
- NarwalFreo
- 패턴 인식
- 삼성소프트웨어멤버십
- 고려대학교
- SSM
- 증강현실
- 삼성
- 가상화
- 신경회로망
- 빅데이터
- BAM
- Today
- Total
정보공간_1
[6기 부산 박천경]SDL (Simple DirectMedia layer) #2 본문
[6기 부산 박천경]SDL (Simple DirectMedia layer) #2
알 수 없는 사용자 2014. 9. 11. 20:53SDL (Simple DirectMedia layer) #1에서는 SDL 의 설치법 및 기존버전과 2.0버전의 차이점에 대해서 알아 보았습니다.
이번 시간에는 SDL의 새로운 버전인 SDL2.0 오픈소스를 이용하여 Bitmap 이미지를 띄워 보겠습니다.
또한 SDL 2.0 버전 의 새로운 기능인 사운드카드를 잡고 그 Path로 음성 파일을 재생 시키겠습니다.
#2 진행에 앞서 SDL #1 에서 SDL 2.0버전을 설치한 후 시작해 주세요.ㅎ
1. SDL window 창을 이용하여 이미지 띄우기
이미지를 로드 하기에 앞서 우리는 몇 가지 변수를 선언 합니다.
SDL_Surface는 표시 가능한 메모리 공간으로, 메모리에 이미지를 그릴 수 있습니다.
SDL_Window로 선언된 변수를 이용하여 SDL_GetWindowSurface 함수에 의해서 비디오
프레임 버퍼가 반환됩니다.
다음 그림은 메인 부분입니다. SDL_CreateWindow() 을 이용하여 window의 타이틀 ,
window의 position 그리고 window의 크기를 pWindow 저장합니다. 이렇게 저장된 정보는
SDL_GetWindowSurface() 함수를 이용하여 프레임 버퍼를 반환 시킵니다.
BMP 이미지를 지정 한 다음 Blit와 UpdateWinowSurface를 해 주게 되면 이미지가 나오게 됩니다.
마지막에 Close 함수를 이용하여Surface와 Winodw를 Destroy 한 다음 SDL_Quit()로 종료하게 됩니다.
2. 사운드 카드를 선택하여 음악듣기
Audio에 관련된 변수를 정의 합니다. Uint8 sound 는 음악파일 데이터의 포인터 , Uint32 Sound len은
음악파일의 길이를 저장하는 변수입니다.
Audio의 callback데이터의 구조체를 생성하고 SDLCALLBACK 함수를 만들어줍니다.
Audio 재생 부분입니다. test_multi_audio 함수를 통하여 저장 된 음성파일의 callback Data
받아와서 Sound card 의 차례에 따라서 일정시간의 SDL_delay를 통해 재생해 줍니다.
사운트 카드를 지정해주는 곳이 SDL_OpenAudioDevice
(const char* device , int iscapture , const SDL_AudioSpec* desired ,
SDL_AudioSpec* obtained, int allowed_change ) 함수 입니다.
device는 UTF-8의 형식으로 사운드 카드의 device name을 넣고 , iscapture 0 인 상태에서는
재생 0이외의 상태에서는 장치에서 녹음할때 쓰입니다. desired 은 파일의 원하는 출력포맷이고 ,
obtained 실제의 출력포맷입니다.
다음은 메인 함수 입니다. SDL_init 을 이용하여 초기화 시켜줍니다.
SDL_GetNumAudioDevies를 이용하여 현 컴퓨터에 설치 된 사운드카드의 개수를 확인하고
devecount 변수에 저장시킵니다. 소리 wav 파일을 로드 시킵니다.
다음 그림과 같이 선택한 사운드 카드에 소리가 나오는 것을 확인하실 수 있습니다.
조금만 더 응용하신다면 Thread를 이용하여 사운드 카드를 여러 개 동시에 선택하여
각각 소리를 만들어 낼 수 있습니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 강북 홍진우] 64비트 멀티코어 OS#2 - 레지스터 분석 및 역할 (0) | 2014.09.12 |
---|---|
[6기 강남 송태현] 안드로이드 프레임워크상에서 외부 입력 모듈 분석 (2) | 2014.09.12 |
[6기 부산 오승민] Transact-SQL(T-SQL) #2 - FILESTREAM (0) | 2014.09.10 |
[6기 부산 정희록] Beautiful Soup #2 (0) | 2014.09.10 |
[6기 강남 김현호] 온라인 문자인식 with SVM #1 (0) | 2014.09.05 |