当我运行以下代码时,出现此错误 java.nio.BufferOverflowException 我正在尝试从android中的Camera Preview创建视频流,我从相机中获取NV21字节数据,并尝试将其转换为mp4格式。当我尝试运行 inputBuffer.put(data);时出现错误; 线,怎么解决呢?我可以尝试其他方法将字节转换为.mp4吗?
public class Resources() {
@Produces
public ConfigurationService getConfigurationService() {
return new ConfigurationService(Constants.CONFIG);
}
}
public abstract class MyAbstractClass {
@Inject
private transient ConfigurationService configurationService; // getter+setter
}
@Named
public class SomeImpl extends MyAbstractClass implements Serializable {
// ...
}
@Named
public class OtherImpl extends MyAbstractClass implements Serializable {
// ...
}
@Named
@ViewScoped
public class MyCtrl {
@Inject
private SomeImpl someImpl;
@Produces
public SomeImpl getSomeImpl() {
return new SomeImpl(MyStringParam);
}
}
答案 0 :(得分:0)
您的MediaCodec
已配置为使用320x240的固定尺寸,该尺寸显然小于所使用的相机框架。如果MediaCodec
期望较小的帧,它将提供较小的inputBuffers
,从而导致BufferOverflowException
。
要解决此问题,请将您的相机配置为使用320x240尺寸,或者根据当前选择的相机预览尺寸动态配置MediaCodec
。