article search result of 'Study/Windows Mobile 6' : 2

  1. 2009/06/02 Windows Mobile 개발시에 제약사항들
  2. 2009/05/03 사운드 출력해보기

Windows Mobile 개발시에 제약사항들

1. 일단 메모리 사용상의 제약
걱정하지도 않고 있던 부분이다. 허나, 윈도모바일6 에서는 한 프로세스당 32MB RAM을 사용 할수 있다.
말이 32MB 이지, 실제로 사용 할수 있는 량은 더 적다. 또한 Shared 메모리를 포함한 32MB 이기 때문에...

2. 에뮬레이터의 제약
에뮬이 가지고 있는 기본적인 저장공간은 32MB 정도 된다. 허나 이것도 우리가 일반적으로 사용하는 PC하고 좀 달라서 인지 파일을  넣었을때, 용량을 더 많이 차지했었다.
이부분은 외부저장공간(가상으로 제공)으로 대처를 하면 문제 없을듯 싶다.

3. DirectDraw의 제약 사항
뭐 이전버전, PC에서도 그랬는지 기억은 잘 나지 않지만, 800*480 (현재 개발중인 스마트폰의 해상도)사이즈의 이미지를 여러장을 붙여서 서페이스를 생성 했을경우, 폰이 거의 아사직전까지 가는 상황이 발생하였다.
이것들을 다시, 최대해상도 단위로 잘라서 애니메이션을 했을 경우에는 아무 문제가 없었다. 아마도 연속적인 메모리가 문제인듯 싶다.

더 있었던것 같으나... 기억나는것만 먼저 포스팅!! 
나중에 더 상세히 적어놔야 할듯.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/06/02 09:00 2009/06/02 09:00
Wind
Study/Windows Mobile 6 2009/06/02 09:00

사운드 출력해보기

포스팅을 해야지 해야지 하면서도 못하고 있었던 것을 드디어 하게 된다.
오늘 포스팅을 하게 될 내용은 사운드를 출력하는 것이다.
물론 사운드를 출력 하는 방법은 여러가지 방법이 있다. 라이브러리가 다양하기 때문에...
하지만, Windows Mobile 6 에서는 극히 제한적이다.
처음에는 DirectSound를 포팅 해보려 했으나, 지원하지 않았다 -_-
여튼 서론이 길어졌으나, 사운드 출력 하는 방법을 알아보자~~

기본적으로 wave 파일을 출력 하는 함수들은 여러가지가 있다.
가장 간단하게 사용 할수 있는 함수는 PlaySound 였던것으로 기억한다.
하지만, 이것을 가지고는 동시에 여러 사운드를 출력이 불가능하다.
그래서 Windows Mobile 6 에서 제공 하는것중(물론 일반 Win32에서 당연히 사용 가능하다)
waveOut*** 씨리즈 라이브러리를 사용하여 출력을 해보겠다.

여러 함수들이 많겠지만, 기본적으로 아래의 순서대로 실행하여 출력하면 된다.

각 함수들의 원형을 보도록하자.

위에 함수들의 원형을 보면 알겠지만, 몇가지 구조체를 받고 있다.
해당 구조체들의 원형도 보도록하자.

이제 아까 위에서 설명한 것처럼 순서대로 함수가 원하는 데이터를 채워서 실행해주면 된다.
여기서 하나 주의할 것은, Open을 할때 콜백처리가 가능하다는것이다.
옵션에 콜백함수로 처리를 하겠다면 CALLBACK_FUNCTION, 윈도우 메세지로 처리를 하겠다면 CALLBACK_WINDOW,
뭐 등등의 쓰레드등으로 메세지 처리가 가능하고 메세지는 출력이 종료가 됐을때 라든지 몇가지가 있다.
그 부분에 대한 처리를 잘 해줘야 하고, 또하나는 Write함수를 사용 할때 보면 실제 wave의 데이터를 받아가는 곳이 있다.
이곳에 데이터를 통채로 넣어버리면, 출력이 되지 않는다. 하나의 정크단위로 잘라서 WAVEHDR과 함께 넘겨줘야만 정상 출력이 되는것을 볼 수 있을것이다.
(나도 이것때문에 왜 안되나.. 했다 -_-;;)
단위는 자유겠지만 보통 8k를 많이 사용하는것 같다.
그래서 각 웨이브 파일의 데이터를 정크단위로 잘라서 그걸 출력하므로서 동시에 몇가지 음악을 출력 할수 있게 하는것 같다.
이제 막 테스트를 끝내고 class로 레핑 해놓은 것이 있으나, 조금 더 다듬고 나서 공개를 하겠다.(별건아니지만.. )

이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/03 14:18 2009/05/03 14:18
Wind
Study/Windows Mobile 6 2009/05/03 14:18
Powerd by Textcube, designed by criuce
rss