6. 사운드 출력
먼저 사운드재생을 위한 파일을 아래 경로에 추가합니다.
첨부파일sounds.zip
재생을 위한 player.h파일을 추가합니다.
1 |
#include <player.h> |
cs |
다음으로 재생을 위한 player_h파일을 선언합니다. 여기서는 각 음계별로 재생을 위해 7개 생성합니다.
1 |
player_h player[7]; |
cs |
다음으로 player_h를 생성합니다.
1
2
3
4
5
6
7
8
9 |
char soundSRC[100];
for(int i=0; i<7; i++)
{
sprintf(soundSRC, "/opt/usr/apps/com.tistory.huiyu.memorygame/res/sounds/sounds_%d.wav", i+1);
player_create(&player[i]);
player_set_uri(player[i], soundSRC);
player_prepare(player[i]);
} |
cs |
player_create()함수를 통해 player_h를 생성하고,
player_set_uri()함수로 player_h에 wav파일을 설정합니다.
res/sounds/경로는 기본적으로 /opt/usr/apps/<패키지명>/res/sounds/의 경로로 들어가게 됩니다.
재생을 위한 함수도 추가합니다.
1
2
3
4
5
6
7
8
9
10
11 |
void play_audio(player_h player)
{
player_state_e player_state;
player_get_state(player, &player_state);
if (player_state == PLAYER_STATE_PLAYING)
player_stop(player);
player_start(player);
}
|
cs |
먼저 player_state함수를 추가하여 player_get_state()함수를 통해 현재 플레이상태를 받아옵니다.
다음으로 현재 재생중이면 player_stop()하여 재생 중이던 음을 멈추고, player_start()를 통해 음을 재생시킵니다.
이렇게 만든 play_audio()함수는 rectangle 선택시 재생될 수 있도록 clicked_rect 콜백함수에서 호출합니다.
1
2
3
4
5
6
7
8
9
10
11
12 |
static void
clicked_rect(void *user_data, Evas* e, Evas_Object *obj, void *event_info)
{
//미리 설정한 오브젝트의 이름을 가져온다
char* rectName = evas_object_name_get(obj);
//첫번째 숫자값을 받아온다음
int num = rectName[0]-'0';
//숫자에 맞는 플레이어를 재생한다.
play_audio(player[num]);
} |
cs |
마지막으로, app_terminate()함수에서 player를 해제시키면 됩니다.
1
2
3
4
5
6
7
8
9
10
11 |
static void
app_terminate(void *data)
{
/* Release all resources. */
for(int i=0; i<7; i++)
{
player_unprepare(player[i]);
player_destroy(player[i]);
player[i] = NULL;
}
} |
cs |
기본적으로 player는 아래와 같이 사용하면 됩니다.
1. 사운드파일 res/경로에 추가
2. player.h 헤더파일 추가
3. player_h파일 선언 후 player_create()함수를 통해 생성
4. player_set_uri()를 통해 재생파일 경로 설정 후 player_prepare()함수로 재생을 준비합니다.
5. player_start()와 player_stop()함수로 사운드 재생/정지 설정
6.다 사용한 player_h는 player_unprepare(), player_destroy()를 통해 메모리 해제
'Software Development > Tizen' 카테고리의 다른 글
[TIZEN]12. 타이젠_간단한게임 만들기6_Animator (0) | 2015.12.26 |
---|---|
[TIZEN]11. 타이젠_간단한게임 만들기5_Timer (1) | 2015.12.26 |
[TIZEN]9. 타이젠_간단한게임 만들기3_이벤트 작성 (0) | 2015.12.25 |
[TIZEN]8. 타이젠_간단한게임 만들기2_레이아웃 구성 (0) | 2015.12.25 |
[TIZEN]7. 타이젠 Layout 설명 (0) | 2015.12.25 |