게임 개발 에서 CocosCreator 를 어떻게 사용 하여 음향 효 과 를 처리 합 니까?
1.Cocos Creator 의 오디 오 재생 기본
1.기초 지식
【1】AudioSource 구성 요소 공식 문서:http://docs.cocos.com/creator/manual/zh/audio/audio.html
【2】cc.audioEngine 공식 문서:http://docs.cocos.com/creator/manual/zh/audio/audio.html
Cocos Creator 는 두 가지 오디 오 재생 방식 을 제공 합 니 다.AudioEngine 과 AudioSource 는 모두 오디 오 를 재생 할 수 있 습 니 다.이들 의 차 이 는 AudioSource 가 구성 요소 이 고 장면 에 추가 할 수 있 으 며 편집기 에서 설정 할 수 있 습 니 다.오디 오 엔진 은 엔진 이 제공 하 는 순수 API 로 스 크 립 트 에서 만 호출 할 수 있다.
공통점:본질 적 으로 AudioClip 오디 오 자원 을 처리 하 는 것 입 니 다.Cocos Creator 편집기 에서 구성 요 소 를 마 운 트 해 야 합 니 다.
개인 적 으로 이것 을 사용 하여 AudioSource 구성 요소 의 재생 소 리 를 바 꾸 는 것 을 권장 합 니 다.인터페이스 가 완비 되 어 있 고 테스트 가 유효 합 니 다.AudioSource 구성 요소 와 유사 한 스 크 립 트 를 패키지 해서 사용 할 수 있 습 니 다.
방식 1:AudioSource 구성 요소 로 재생
빈 노드 를 만 들 고 이 빈 노드 에 다른 구성 요 소 를 추가 합 니 다->AudioSource
스 크 립 트 에 AudioSource 를 미리 설정 하고 실제 수요 에 따라 스 크 립 트 의 대외 인 터 페 이 스 를 보완 합 니 다.다음 과 같 습 니 다.
cc.Class({
properties: {
audioSource: {
type: cc.AudioSource,
default: null
},
},
play() {
this.audioSource.play();
},
pause() {
this.audioSource.pause();
},
});
방식 2:AudioEngine 으로 재생스 크 립 트 에서 audioClip 자원 대상 을 정의 합 니 다.다음 예제 에서 properties 대상 에 있 습 니 다.
cc.audioEngine.play(audio,loop,volume)를 직접 사용 합 니 다.방송다음 예제 에서 onLoad 중.
cc.Class({
properties: {
audio: {
default: null,
type: cc.AudioClip
}
},
onLoad() {
this.current = cc.audioEngine.play(this.audio, false, 1);
},
onDestroy() {
cc.audioEngine.stop(this.current);
}
});
AudioEngine 이 재생 할 때,이곳 에 들 어 오 는 것 은 url 이 아 닌 완전한 AudioClip 대상 이라는 것 을 주의해 야 한다.그래서 저 희 는 play 인터페이스 에 오디 오 URL 주 소 를 직접 작성 하 는 것 을 권장 하지 않 습 니 다.오디 오 클립 을 정의 한 다음 편집기 에서 오디 오 를 끌 어 오 기 를 바 랍 니 다.2.상용 방법
【1】구성 요소 AudioSource
play()오디 오 편집 을 재생 합 니 다.
stop()현재 오디 오 편집 을 중단 합 니 다.
pause()는 현재 오디 오 편집 을 중단 합 니 다.
resume()재생 재 개.
【2】음성 시스템 cc.audioEngine
//배경 음악,순환
cc.audioEngine.playMusic(source);
cc.audioEngine.stopMusic(source);
//단음 효과
cc.audioEngine.playEffect(source);
cc.audioEngine.stopEffect(source);
위의 첫 번 째 방법 은 네 이 티 브 플랫폼 에 bug 가 많 기 때문에 우리 게임 은 모두 두 번 째 방법 으로 소 리 를 재생 합 니 다.
2.Cocos Creator 음향 효과 관리 구성 요소 패키지
1.사 운 드 관리 클래스 SoundMgr.ts 만 들 기
const {
ccclass,
property
} = cc._decorator;
@ccclass
exportdefaultclassSoundMgr {
sound_path: string = 'res/sounds/';
// sound key-value
sounds: {
[key: string]: any
} = {};
enabled: boolean = true;
music: string = '';
//
protectedstatic instance: SoundMgr;
publicstatic getInstance(): SoundMgr {
if (!this.instance) {
this.instance = newSoundMgr();
}
returnthis.instance;
}
//
addSound(key: string, clip: cc.AudioClip) {
this.sounds[key] = clip;
}
playFx(fxName: string) {
if (!this.enabled) return;
cc.audioEngine.playEffect(this.sounds[fxName], false);
}
playMusic(musicName: string) {
this.music = musicName;
if (!this.enabled) return;
cc.audioEngine.playMusic(this.sounds[musicName], true);
}
stopMusic() {
cc.audioEngine.stopMusic();
}
setEnabled(enabled: boolean) {
this.enabled = enabled;
if (this.enabled) {
this.playMusic(this.music);
} else {
cc.audioEngine.stopAll();
}
}
getEnable() {
returnthis.enabled;
}
}
2.초기 화 할 때 오디 오 자원 불 러 오기Cocos Creator 시각 화 편집 도 구 를 통 해 저 희 는 게임 장면 과 자원 을 다음 과 같이 설정 합 니 다.
sounds 는 코드 를 통 해 동적 으로 불 러 오기 때문에 모든 사 운 드 파일 을 저장 하 는 sounds 폴 더 를 resources 폴 더 에 저장 합 니 다(위의 그림 참조).
그리고 GameMgr.ts 를 새로 만 들 고 Canvas 노드 에 마 운 트 합 니 다.
onst {
ccclass,
property
} = cc._decorator;
importSoundMgrfrom "SoundMgr";
@ccclass
exportdefaultclassGameMgrextends cc.Component {
loadSounds() {
// resources
cc.loader.loadResDir('sounds', cc.AudioClip, function(err, clips) {
console.log("load clips:", clips);
if (err) {
console.log("err:", err);
}
for (let i = 0; i
SoundMgr.getInstance().addSound(clips[i].name, clips[i]);
}
});
}
onLoad() {
this.loadSounds();
console.log("sounds:", SoundMgr.getInstance().sounds);
}
onPlayClick() {
console.log("play");
SoundMgr.getInstance().playMusic('spring_music');
}
onPauseClick() {
console.log("pause");
SoundMgr.getInstance().stopMusic();
}
}
GameMgr 사용자 정의 구성 요소 의 onLoad 방법 에서 loadSounds 를 사용 하여 게임 에 필요 한 모든 음성 자원 을 불 러 옵 니 다.동시에 GameMgr.ts 에서 재생 과 정지 인터페이스 방법 인 onPlayClick 과 onPauseClick 방법 을 제공 합 니 다.재생 과 일시 정지 단 추 를 호출 할 수 있 습 니 다.
3.재생 및 일시 정지
4.테스트 실행
음성 자원 을 모두 불 러 오 는 데 성 공 했 고 재생 과 일시 정지 단 추 를 누 르 면 테스트 를 통과 할 수 있 습 니 다.
주의사항
메모:오디 오 재생 과 관련 된 설정 이 완 료 된 후에 도 일부 브 라 우 저 에서 미리 보 거나 실행 할 때 소 리 를 듣 지 못 한다 면 브 라 우 저 호환성 으로 인 한 문제 일 수 있 습 니 다.예 를 들 어 크롬 은 웹 오디 오의 자동 재생 을 사용 하지 않 습 니 다.오디 오 는 기본적으로 웹 오디 오 방식 으로 불 러 오고 재생 합 니 다.이 때 사용 자 는 자원 관리자 에서 오디 오 자원 을 선택 한 다음 속성 검사 기 에서 오디 오 로드 모드 를 DOM Audio 로 수정 해 야 브 라 우 저 에서 정상적으로 재생 할 수 있 습 니 다.
이상 은 게임 개발 에서 CocosCreator 를 어떻게 사용 하여 음향 효 과 를 처리 하 는 지 에 대한 상세 한 내용 입 니 다.더 많은 CocosCreator 음향 효과 처리 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOS 앱 에서 재생 음향 효과 와 음악 기능 을 실현 하 는 간단 한 예시iOS 개발 과정 에서 음향 효 과 를 재생 하 는 기능 을 만 날 수 있 습 니 다. 사실 간단 합 니 다.iOS 는 음향 효 과 를 직접 재생 하 는 프레임 워 크 를 제공 합 니 다.AudioToolbox.fr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.