창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳
글 수 185
밑에 대슬님 질문 보니까
멤버변수를 등록할때 동적할당을 하는게 씌여 있는데
그냥 Cogg m_ogg_oggplayer;
이런식으로 그냥 일반변수로 등록을 하고 사용할순 없나요?
동적할당을 굳이 써야하는지 ㅡ.ㅡ;;
(개인적으로 4바이트 추가와 잘못되면 메모리 누수가 되서 잘 안쓰는편)
멤버변수를 등록할때 동적할당을 하는게 씌여 있는데
그냥 Cogg m_ogg_oggplayer;
이런식으로 그냥 일반변수로 등록을 하고 사용할순 없나요?
동적할당을 굳이 써야하는지 ㅡ.ㅡ;;
(개인적으로 4바이트 추가와 잘못되면 메모리 누수가 되서 잘 안쓰는편)
똥똥배
- 2008.07.01
- 18:13:45
- (*.239.144.2)
Ogg의 재생을 멈추는 함수는 StopOgg입니다.
ReleaseOgg는 불러온 Ogg를 해체하는 함수지요.
아마 안정적으로 하려면 Stop한 후 Release하는 것이 순서일 듯.
바로 Release해도 되는지는 잘 기억이 안 나지만 일단 안정성면에서는 Stop->Release로 해주시길.
바로 Open할 경우의 처리도 코드상에서 처리되어 있지만 역시 안정성을 생각하는 게 좋겠지요.
참고로 Ogg 경우 상당한 메모리를 먹기 때문에 5분 이하의 Ogg를 재생하길 권장합니다.
하나 덧붙여 Open할 경우 Ogg를 Wav로 변환하는 처리를 하기 때문에 약간 딜레이가 생깁니다.
끊김없이 재생하기 위해서는 화면이 바뀌는 순간에 데이터를 읽고 재생하는 것이 좋습니다.
ReleaseOgg는 불러온 Ogg를 해체하는 함수지요.
아마 안정적으로 하려면 Stop한 후 Release하는 것이 순서일 듯.
바로 Release해도 되는지는 잘 기억이 안 나지만 일단 안정성면에서는 Stop->Release로 해주시길.
바로 Open할 경우의 처리도 코드상에서 처리되어 있지만 역시 안정성을 생각하는 게 좋겠지요.
참고로 Ogg 경우 상당한 메모리를 먹기 때문에 5분 이하의 Ogg를 재생하길 권장합니다.
하나 덧붙여 Open할 경우 Ogg를 Wav로 변환하는 처리를 하기 때문에 약간 딜레이가 생깁니다.
끊김없이 재생하기 위해서는 화면이 바뀌는 순간에 데이터를 읽고 재생하는 것이 좋습니다.
COgg는 생성자에서 DirectSound 객체를 요구합니다.
하지만 DirectSound 객체가 동적으로 프로그램 초기화 과정에서 생성되기 때문에
COgg 역시 DirectSound가 생성된 다음에 동적으로 생성해 줘야 하는 겁니다.
그리고 처음부터 구조적으로 잘 짜면 메모리 누수는 걱정할 필요 없습니다.
정적 할당과 동적 할당 할 때를 효율적으로 판단하고 자유롭게 쓸 수 있어야 고급 프로그래머라 할 수 있지요.