mirror of https://github.com/axmolengine/axmol.git
rename some files
This commit is contained in:
parent
eaad344762
commit
7d9ff2af6f
|
@ -1,14 +1,5 @@
|
|||
/*
|
||||
* MyAudioOutListener.cpp
|
||||
*
|
||||
* Created on: 2011-1-21
|
||||
* Author: Administrator
|
||||
*/
|
||||
|
||||
#include "MyAudioOutListener.h"
|
||||
#include "CCAudioOut.h"
|
||||
#include <stdio.h>
|
||||
#include "WavHead.h"
|
||||
|
||||
|
||||
using namespace Osp::Base;
|
||||
using namespace Osp::Base::Collection;
|
||||
|
@ -16,6 +7,63 @@ using namespace Osp::Media;
|
|||
|
||||
#define MAX_BUFFER_SIZE 2520 // 840 byte
|
||||
|
||||
typedef struct wave_tag
|
||||
{
|
||||
char ChunkID[5];
|
||||
unsigned long int ChunkSize;
|
||||
char Format[5];
|
||||
char SubChunk1ID[5];
|
||||
unsigned long int SubChunk1Size;
|
||||
unsigned short int AudioFormat;
|
||||
unsigned short int NumChannels;
|
||||
unsigned long int SampleRate;
|
||||
unsigned long int ByteRate;
|
||||
unsigned short int BlockAlign;
|
||||
unsigned short int BitsPerSample;
|
||||
char SubChunk2ID[5];
|
||||
unsigned long int SubChunk2Size;
|
||||
}WAVE;
|
||||
|
||||
static bool GetWaveHeadInfo(FILE*stream, WAVE& outWavHead)
|
||||
{
|
||||
char szTmp[100] = {0};
|
||||
int i = 0;
|
||||
|
||||
fread(outWavHead.ChunkID, 4, 1, stream);
|
||||
outWavHead.ChunkID[4] = (char)0;
|
||||
fread(&(outWavHead.ChunkSize),4, 1, stream);
|
||||
fread(outWavHead.Format, 4, 1, stream);
|
||||
outWavHead.Format[4] = (char)0;
|
||||
fread(outWavHead.SubChunk1ID, 4, 1, stream);
|
||||
outWavHead.SubChunk1ID[4] = (char)0;
|
||||
fread(&(outWavHead.SubChunk1Size), 4, 1, stream);
|
||||
fread(&(outWavHead.AudioFormat), 2, 1, stream);
|
||||
fread(&(outWavHead.NumChannels), 2, 1, stream);
|
||||
fread(&(outWavHead.SampleRate), 4, 1, stream);
|
||||
fread(&(outWavHead.ByteRate), 4, 1, stream);
|
||||
fread(&(outWavHead.BlockAlign), 2, 1, stream);
|
||||
fread(&(outWavHead.BitsPerSample), 2, 1, stream);
|
||||
|
||||
fseek(stream, 0, SEEK_SET);
|
||||
fread(szTmp, 64, 1, stream);
|
||||
|
||||
for (i = 0; i <= 60; i++)
|
||||
{
|
||||
if (szTmp[i] == 'd' && szTmp[i+1] == 'a' && szTmp[i+2] == 't' && szTmp[i+3] == 'a')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fseek(stream, i, SEEK_SET);
|
||||
fread(outWavHead.SubChunk2ID, 4, 1, stream);
|
||||
outWavHead.SubChunk2ID[4] = (char)0;
|
||||
|
||||
fread(&(outWavHead.SubChunk2Size), 4, 1, stream);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
MyAudioOutEventListener::MyAudioOutEventListener()
|
||||
{
|
||||
__totalWriteBufferNum = 0;
|
|
@ -1,18 +1,9 @@
|
|||
/*
|
||||
* MyAudioOutListener.h
|
||||
*
|
||||
* Created on: 2011-1-21
|
||||
* Author: Administrator
|
||||
*/
|
||||
|
||||
#ifndef MYAUDIOOUTLISTENER_H_
|
||||
#define MYAUDIOOUTLISTENER_H_
|
||||
#ifndef __CCAUDIOOUT_H__
|
||||
#define __CCAUDIOOUT_H__
|
||||
|
||||
#include <FBase.h>
|
||||
#include <FMedia.h>
|
||||
|
||||
|
||||
|
||||
class MyAudioOutEventListener :
|
||||
public Osp::Media::IAudioOutEventListener
|
||||
{
|
||||
|
@ -24,9 +15,9 @@ public:
|
|||
|
||||
result Construct(const char* pszFilePath);
|
||||
|
||||
void play();
|
||||
void stop();
|
||||
void setVolume(int volume);
|
||||
void Play();
|
||||
void Stop();
|
||||
void SetVolume(int volume);
|
||||
/**
|
||||
* Notifies when the device has written a buffer completely.
|
||||
*
|
|
@ -1,81 +0,0 @@
|
|||
/*
|
||||
* WaveHead.cpp
|
||||
*
|
||||
* Created on: 2011-1-21
|
||||
* Author: Administrator
|
||||
*/
|
||||
|
||||
#include "WavHead.h"
|
||||
#include <stdio.h>
|
||||
#include <FBaseSys.h>
|
||||
|
||||
bool GetWaveHeadInfo(FILE*stream, WAVE& outWavHead)
|
||||
{
|
||||
char szTmp[100] = {0};
|
||||
int i = 0;
|
||||
|
||||
// FILE *stream;
|
||||
|
||||
// if((stream = fopen(fileName,"rb"))==NULL)
|
||||
// {
|
||||
// AppLog("ERROR:can't open the file!");
|
||||
//
|
||||
// return false;
|
||||
// }
|
||||
/*
|
||||
|
||||
* 读wav文件的各个field
|
||||
|
||||
*/
|
||||
|
||||
fread(outWavHead.ChunkID, 4, 1, stream);
|
||||
|
||||
outWavHead.ChunkID[4] = (char)0;
|
||||
|
||||
fread(&(outWavHead.ChunkSize),4, 1, stream);
|
||||
|
||||
fread(outWavHead.Format, 4, 1, stream);
|
||||
|
||||
outWavHead.Format[4] = (char)0;
|
||||
|
||||
fread(outWavHead.SubChunk1ID, 4, 1, stream);
|
||||
|
||||
outWavHead.SubChunk1ID[4] = (char)0;
|
||||
|
||||
fread(&(outWavHead.SubChunk1Size), 4, 1, stream);
|
||||
|
||||
fread(&(outWavHead.AudioFormat), 2, 1, stream);
|
||||
|
||||
fread(&(outWavHead.NumChannels), 2, 1, stream);
|
||||
|
||||
fread(&(outWavHead.SampleRate), 4, 1, stream);
|
||||
|
||||
fread(&(outWavHead.ByteRate), 4, 1, stream);
|
||||
|
||||
fread(&(outWavHead.BlockAlign), 2, 1, stream);
|
||||
|
||||
fread(&(outWavHead.BitsPerSample), 2, 1, stream);
|
||||
|
||||
fseek(stream, 0, SEEK_SET);
|
||||
|
||||
|
||||
fread(szTmp, 64, 1, stream);
|
||||
|
||||
for (i = 0; i <= 60; i++)
|
||||
{
|
||||
if (szTmp[i] == 'd' && szTmp[i+1] == 'a' && szTmp[i+2] == 't' && szTmp[i+3] == 'a')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fseek(stream, i, SEEK_SET);
|
||||
|
||||
fread(outWavHead.SubChunk2ID, 4, 1, stream);
|
||||
|
||||
outWavHead.SubChunk2ID[4] = (char)0;
|
||||
|
||||
fread(&(outWavHead.SubChunk2Size), 4, 1, stream);
|
||||
|
||||
return true;
|
||||
}
|
|
@ -1,92 +0,0 @@
|
|||
/*
|
||||
* WavHead.h
|
||||
*
|
||||
* Created on: 2011-1-21
|
||||
* Author: Administrator
|
||||
*/
|
||||
|
||||
#ifndef WAVHEAD_H_
|
||||
#define WAVHEAD_H_
|
||||
|
||||
#include <stdio.h>
|
||||
/* WAVE文件头 */
|
||||
|
||||
typedef struct wave_tag
|
||||
|
||||
{
|
||||
|
||||
char ChunkID[5]; // "RIFF"标志
|
||||
|
||||
unsigned long int ChunkSize; // 文件长度(WAVE文件的大小, 不含前8个字节)
|
||||
|
||||
char Format[5]; // "WAVE"标志
|
||||
|
||||
|
||||
|
||||
char SubChunk1ID[5];// "fmt "标志
|
||||
|
||||
unsigned long int SubChunk1Size; /*
|
||||
|
||||
* 过渡字节(不定)
|
||||
|
||||
* 16 for PCM. This is the size of the rest of the
|
||||
|
||||
* Subchunk which follows this number.
|
||||
|
||||
*/
|
||||
|
||||
unsigned short int AudioFormat; /*
|
||||
|
||||
* 格式类别(10H为PCM格式的声音数据)
|
||||
|
||||
* PCM=1 (i.e. Linear quantization)
|
||||
|
||||
* Values other than 1 indicate some form of compression.
|
||||
|
||||
*/
|
||||
|
||||
unsigned short int NumChannels; // 通道数(单声道为1, 双声道为2)
|
||||
|
||||
//unsigned short int SampleRate; // 采样率(每秒样本数), 表示每个通道的播放速度
|
||||
|
||||
unsigned long int SampleRate; // 采样率(每秒样本数), 表示每个通道的播放速度
|
||||
|
||||
unsigned long int ByteRate; /*
|
||||
|
||||
* 波形音频数据传输速率, 其值为:通道数*每秒数据位数*每样本的数据位数/8
|
||||
|
||||
* 播放软件可以利用该值估计缓冲区大小
|
||||
|
||||
*/
|
||||
|
||||
unsigned short int BlockAlign; /*
|
||||
|
||||
* 每样本的数据位数(按字节算), 其值为:通道数*每样本的数据位值/8, 播放
|
||||
|
||||
* 软件需要一次处理多个该值大小的字节数据, 以便将其值用于缓冲区的调整
|
||||
|
||||
*/
|
||||
|
||||
unsigned short int BitsPerSample; /*
|
||||
|
||||
* 每样本的数据位数, 表示每个声道中各个样本的数据位数. 如果有多个声道,
|
||||
|
||||
* 对每个声道而言, 样本大小都一样
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
char SubChunk2ID[5]; // 数据标记"data"
|
||||
|
||||
unsigned long int SubChunk2Size; // 语音数据的长度
|
||||
|
||||
} WAVE;
|
||||
|
||||
/*
|
||||
* pBuffer内部申请空间,需要由外部释放
|
||||
*/
|
||||
|
||||
bool GetWaveHeadInfo(FILE*stream, WAVE& outWavHead);
|
||||
|
||||
#endif /* WAVHEAD_H_ */
|
Loading…
Reference in New Issue