将单声道和立体声输入与超级播放器相结合
Combine Mono and Stereo Input with Superpowered Player
我有 3 个文件,两个是单声道的,一个是立体声的。我想和他们一起玩。目前我的代码是这样的,但输出似乎不正确。
bool silence = !player1->process(stereoBuffer, false, numberOfSamples, vol);
silence = !(playerLeft->process(stereoBuffer, !silence, numberOfSamples,vol));
silence = !(playerRight->process(stereoBuffer, !silence, numberOfSamples,vol));
if (!silence) {
SuperpoweredFloatToShortInt(stereoBuffer, output, numberOfSamples);
return true;
}
有人知道这里出了什么问题吗?我想我应该使用这个方法
void SuperpoweredFloatToShortIntInterleave(float *inputLeft, float *inputRight, short int *output, unsigned int numberOfSamples);
左右各有 2 个缓冲区,但如何将 player1
的数据添加到这 2 个缓冲区中?请帮忙。
你需要对 playerLeft 和 playerRight 的 silence 值进行逻辑或操作,因为在 player1 之后它可能已经为真了。
silence |= !playerLeft->process(...
silence |= !playerRight->process(...
您也可以"flip"沉默"hasAudio"以便于理解:
bool hasAudio = player1->process(stereoBuffer, false, ...
hasAudio |= playerLeft->process(stereoBuffer, hasAudio, ...
hasAudio |= playerRight->process(stereoBuffer, hasAudio, ...
我有 3 个文件,两个是单声道的,一个是立体声的。我想和他们一起玩。目前我的代码是这样的,但输出似乎不正确。
bool silence = !player1->process(stereoBuffer, false, numberOfSamples, vol);
silence = !(playerLeft->process(stereoBuffer, !silence, numberOfSamples,vol));
silence = !(playerRight->process(stereoBuffer, !silence, numberOfSamples,vol));
if (!silence) {
SuperpoweredFloatToShortInt(stereoBuffer, output, numberOfSamples);
return true;
}
有人知道这里出了什么问题吗?我想我应该使用这个方法
void SuperpoweredFloatToShortIntInterleave(float *inputLeft, float *inputRight, short int *output, unsigned int numberOfSamples);
左右各有 2 个缓冲区,但如何将 player1
的数据添加到这 2 个缓冲区中?请帮忙。
你需要对 playerLeft 和 playerRight 的 silence 值进行逻辑或操作,因为在 player1 之后它可能已经为真了。
silence |= !playerLeft->process(...
silence |= !playerRight->process(...
您也可以"flip"沉默"hasAudio"以便于理解:
bool hasAudio = player1->process(stereoBuffer, false, ...
hasAudio |= playerLeft->process(stereoBuffer, hasAudio, ...
hasAudio |= playerRight->process(stereoBuffer, hasAudio, ...