我正在尝试使用 AVCaptureDevice 等它编译和运行的音量级别,但这些值似乎只是随机的,而且我也不断收到溢出错误。
编辑:
RMS 范围在 0 到 20000 左右是否正常?
if let audioCaptureDevice : AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio){
try audioCaptureDevice.lockForConfiguration()
let audioInput = try AVCaptureDeviceInput(device: audioCaptureDevice)
audioCaptureDevice.unlockForConfiguration()
if(captureSession.canAddInput(audioInput)){
captureSession.addInput(audioInput)
print("added input")
}
let audioOutput = AVCaptureAudioDataOutput()
audioOutput.setSampleBufferDelegate(self, queue: GlobalUserInitiatedQueue)
if(captureSession.canAddOutput(audioOutput)){
captureSession.addOutput(audioOutput)
print("added output")
}
//supposed to start session not on UI queue coz it takes a while
dispatch_async(GlobalUserInitiatedQueue) {
print("starting captureSession")
self.captureSession.startRunning()
}
}
Run Code Online (Sandbox Code Playgroud)
...
func captureOutput(captureOutput: AVCaptureOutput!, let didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!) {
// Needs to be initialized …Run Code Online (Sandbox Code Playgroud) 在苹果文档上,它说
我们建议您使用 DFT 例程而不是这些例程。
或者
尽可能使用 DFT 例程而不是这些例程。(例如,而不是调用vDSP_fft_zip与vDSP_create_fftsetup创造了一个建立,呼叫vDSP_DFT_Execute( ::: :_ :)与vDSP_DFT_zop_CreateSetup(创建的设置::_ :))。
使用 DFT 例程有什么好处?
我正在尝试设置水平列表项的动画,以消除alpha动画的工作,并且layoutparam值也会随着时间的推移而减少但由于某种原因不会更改列表项的实际高度.
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final int initialHeight = view.getMeasuredHeight();
if(interpolatedTime == 1){
imageAdapter.remove(view, position);
}else{
view.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
view.setAlpha(1 - interpolatedTime);
System.out.println(" v height = " + view.getHeight());
System.out.println(" v layoutparams = " + view.getLayoutParams().height);
view.forceLayout();
view.invalidate();
view.requestLayout();
}
}
Run Code Online (Sandbox Code Playgroud)
这是在imadeAdapter的getView方法中,binBtn是您触摸以删除listitem的按钮
binBtn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_UP)
{
View vp = (View) v.getParent();
SqueezeAnimation ani = new …Run Code Online (Sandbox Code Playgroud)