如何将ShortBuffer转换为Buffer []?

时间:2013-07-20 17:15:04

标签: java android opencv ffmpeg javacv

我在Android上使用JavaCV,我正在关注此示例活动。 https://code.google.com/p/javacv/source/browse/samples/RecordActivity.java

然而,我遇到麻烦的那条线是

 recorder.record( ShortBuffer.wrap(audioData, 0, bufferReadResult). );

但我正在获得该行的例外,因为它期待一个Buffer []。然而,读入Buffer和ShortBuffer,我不知道为什么它不会接受它。

记录()

的声明
public void record(com.googlecode.javacv.cpp.opencv_core.IplImage image) throws com.googlecode.javacv.FrameRecorder.Exception { /* compiled code */ }

public void record(com.googlecode.javacv.cpp.opencv_core.IplImage image, int pixelFormat) throws com.googlecode.javacv.FrameRecorder.Exception { /* compiled code */ }

public void record(java.nio.Buffer[] samples) throws com.googlecode.javacv.FrameRecorder.Exception { /* compiled code */ }

这是我第一次使用Buffer类,所以我对它们的工作方式感到有些困惑。

1 个答案:

答案 0 :(得分:1)

Buffer[] barray = new Buffer[1];
barray[0] = ShortBuffer.wrap(audioData, 0, bufferReadResult);
recorder.record(barray);