目前我想让UITextView有一个双击手势.似乎UITableView有自己的双击手势,当我们双击时,会选择一些文字.所以我想删除这个默认的双击手势到我自己的手势识别器.我尝试了很多方法,都失败了.似乎没有办法删除UITextView的默认识别器.我还想在这个UITextView上添加一个透明视图来做双击事件,但是这个子视图将阻止UITextView上的其他手势.是否有一些方法可以将双击手势识别器添加到UITextView?我真的希望有一个解决方案.
我仍然期待iOS5的解决方案:)
我目前正在学习一个github项目ScreenCapture的代码,它可以捕获屏幕并在surfaceview中显示图像,这是项目https://github.com/Charlesjean/android-ScreenCapture.我尝试使用以下代码将ImageView表面替换为ImageReader对象的表面:
mImgReader = ImageReader.newInstance(mWidth, mHeight, ImageFormat.JPEG, 5);
mSurface = mImgReader.getSurface();// mSurfaceView.getHolder().getSurface();
mImgReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Log.i(TAG, "in OnImageAvailable");
}
}, mHandler);
Run Code Online (Sandbox Code Playgroud)
并创建VirtualDisplay,如下所示:
mVirtualDisplay = mMediaProjection.createVirtualDisplay("ScreenCapture",
mWidth, mHeight, mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY |
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
mSurface, new VirtualDisplay.Callback() {
@Override
public void onResumed() {
Log.i(TAG, "onResumed");
super.onResumed();
}
@Override
public void onPaused() {
Log.i(TAG, "onPaused");
super.onPaused();
}
}, mHandler);
Run Code Online (Sandbox Code Playgroud)
但这种onImageAvailable
方法从未被调用,有没有人对此有任何经验?我无法弄清楚为什么这不起作用.
我想使用 android mediamuxer 混合视频(1 分钟)和音频(10 秒)。我希望音频重复播放,直到视频结束。当我使用下面的代码时,音频仅播放 10 秒。有谁知道如何解决这个问题?
mediaMuxer.start();
while ((sampleSize = videoExtra.readSampleData(videoBuffer, 0 )) != -1) {
videoBufferInfo.offset = 0;
videoBufferInfo.size = sampleSize;
videoBufferInfo.presentationTimeUs = videoExtra.getSampleTime();
videoBufferInfo.flags = videoExtra.getSampleFlags();
mediaMuxer.writeSampleData(videoIndex, videoBuffer, videoBufferInfo);
videoExtra.advance();
}
while ((audioSize = musicExtra.readSampleData(audioBuffer, 0)) != -1) {
audioBufferInfo.offset = 0;
audioBufferInfo.size = audioSize;
audioBufferInfo.presentationTimeUs = musicExtra.getSampleTime();
audioBufferInfo.flags = musicExtra.getSampleFlags();
mediaMuxer.writeSampleData(audioIndex, audioBuffer, audioBufferInfo);
musicExtra.advance();
}
musicExtra.seekTo(0, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
videoExtra.release();
musicExtra.release();
mediaMuxer.stop();
mediaMuxer.release();
Run Code Online (Sandbox Code Playgroud)