gpt4 book ai didi

android - 带.raw输入的音频波形

转载 作者:行者123 更新时间:2023-12-03 00:34:33 30 4
gpt4 key购买 nike

我想显示音频波形,我得到了此代码,它需要.raw音频输入并显示音频波形,但是当我放入.3gp,.mp3音频时,我得到白噪声,有人可以帮助我如何使其按需与.3gp一起使用使用.3gp音频运行它。

InputStream是= getResources()。openRawResource(R.raw.test1);

test1是一个.raw文件

最终WaveformView mPlaybackView =(WaveformView)findViewById(R.id.playbackWaveformView);

    short[] samples = null;
try {
samples = getAudioSample();
} catch (IOException e) {
e.printStackTrace();
}

if (samples != null) {
final FloatingActionButton playFab = (FloatingActionButton) findViewById(R.id.playFab);

mPlaybackThread = new PlaybackThread(samples, new PlaybackListener() {
@Override
public void onProgress(int progress) {
mPlaybackView.setMarkerPosition(progress);
}
@Override
public void onCompletion() {
mPlaybackView.setMarkerPosition(mPlaybackView.getAudioLength());
playFab.setImageResource(android.R.drawable.ic_media_play);
}
});
mPlaybackView.setChannels(1);
mPlaybackView.setSampleRate(PlaybackThread.SAMPLE_RATE);
mPlaybackView.setSamples(samples);

playFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!mPlaybackThread.playing()) {
mPlaybackThread.startPlayback();
playFab.setImageResource(android.R.drawable.ic_media_pause);
} else {
mPlaybackThread.stopPlayback();
playFab.setImageResource(android.R.drawable.ic_media_play);
}
}
});
}
}

@Override
protected void onStop() {
super.onStop();

mPlaybackThread.stopPlayback();
}

private short[] getAudioSample() throws IOException{


InputStream is =getResources().openRawResource(R.raw.test1);

byte[] data;
try {
data = IOUtils.toByteArray(is);
} finally {
if (is != null) {
is.close();
}
}

ShortBuffer sb = ByteBuffer.wrap(data).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer();
short[] samples = new short[sb.limit()];
sb.get(samples);
return samples;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}

最佳答案

白噪声是什么意思?

.3gp,.mp3是压缩音频,因此您需要解压缩流然后显示。

关于android - 带.raw输入的音频波形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330617/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com