火山小视频怎么用手机自带的iphone6s自带屏幕录像像功能录制小视频?

96U手游网—最好玩的手机游戏网站!
当前位置:
> 火山小视频怎么弄特效 火山小视频弄特效方法
火山小视频怎么弄特效 火山小视频弄特效方法
火山小视频是一款非常火爆好看的短视频播放应用软件,不少用户都还不知道火山小视频怎么弄特效,下面和小编一起去看看吧。
类型:视频播放
版本:2.2.1大小:33.46M
评语:火山小视频直播app是一款手机直播应用。在手机上即可随时随地看到直播。超多主播为你展示才艺秀。还有精彩的礼物,让你引人注目。主播与你在线互动,让你与主播零距离!
类型:视频播放
版本:2.2.1大小:33.46M
评语:火山小视频直播app是一款手机直播应用。在手机上即可随时随地看到直播。超多主播为你展示才艺秀。还有精彩的礼物,让你引人注目。主播与你在线互动,让你与主播零距离!
火山小视频怎么弄特效?火山小视频弄特效方法
1、据小编所知在火山小视频是没有直接弄特效的功能的;
2、用户只有通过火山小视频拍摄小视频然后上传;
3、上图的特效是用户通过其他的视频编辑器设置好,然后直接上传到火山小视频的。
本站为防止低俗内容出现,用户发表的评论需经过审核,谢谢 !
查看更多 ↓
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%
新年大礼包剩余:0%Android录制视频,仿微信小视频录制(一)
公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预览使用SurfaceView。在网上找了一个项目,后来经过自己加工完善,可以比较稳定的使用。内容较多分为几个篇幅来说吧,第一篇先说一下封装的录制控件,第二篇有具体的使用,第三篇讲一下其他一些扩展延伸。
自定义了一个控件MovieRecorderView,封装了包括视频的录制、视频的预览、视频的保存、与录制进度监听等功能。具体可以参考代码,注释也是比较详细的。
控件代码部分 MovieRecorderView.java
import android.annotation.TargetA
import android.app.A
import android.content.C
import android.content.res.TypedA
import android.hardware.C
import android.hardware.Camera.P
import android.media.MediaR
import android.media.MediaRecorder.AudioE
import android.media.MediaRecorder.AudioS
import android.media.MediaRecorder.OnErrorL
import android.media.MediaRecorder.OutputF
import android.media.MediaRecorder.VideoE
import android.media.MediaRecorder.VideoS
import android.os.B
import android.os.E
import android.util.AttributeS
import android.util.L
import android.view.LayoutI
import android.view.SurfaceH
import android.view.SurfaceHolder.C
import android.view.SurfaceV
import android.widget.LinearL
import java.io.F
import java.io.IOE
import java.util.C
import java.util.L
import java.util.T
import java.util.TimerT
* 视频播放控件
* Created by Wood on .
public class MovieRecorderView extends LinearLayout implements OnErrorListener {
private static final String LOG_TAG = &MovieRecorderView&;
private SurfaceView surfaceV
private SurfaceHolder surfaceH
//private ProgressBar progressB
private MediaRecorder mediaR
private T//计时器
private int mW//视频录制分辨率宽度
private int mH//视频录制分辨率高度
private boolean isOpenC//是否一开始就打开摄像头
private int recordMaxT//最长拍摄时间
private int timeC//时间计数
private File recordFile =//视频文件
private long sizePicture = 0;
public MovieRecorderView(Context context) {
this(context, null);
public MovieRecorderView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public MovieRecorderView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context =
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MovieRecorderView, defStyle, 0);
mWidth = a.getInteger(R.styleable.MovieRecorderView_record_width, 640);//默认640
mHeight = a.getInteger(R.styleable.MovieRecorderView_record_height, 360);//默认360
isOpenCamera = a.getBoolean(R.styleable.MovieRecorderView_is_open_camera, true);//默认打开摄像头
recordMaxTime = a.getInteger(R.styleable.MovieRecorderView_record_max_time, 10);//默认最大拍摄时间为10s
LayoutInflater.from(context).inflate(R.layout.movie_recorder_view, this);
surfaceView = (SurfaceView) findViewById(R.id.surface_view);
//TODO 需要用到进度条,打开此处,也可以自己定义自己需要的进度条,提供了拍摄进度的接口
//progressBar = (ProgressBar) findViewById(R.id.progress_bar);
//progressBar.setMax(recordMaxTime);//设置进度条最大量
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(new CustomCallBack());
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
a.recycle();
* SurfaceHolder回调
private class CustomCallBack implements Callback {
public void surfaceCreated(SurfaceHolder holder) {
if (!isOpenCamera)
initCamera();
} catch (IOException e) {
e.printStackTrace();
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
public void surfaceDestroyed(SurfaceHolder holder) {
if (!isOpenCamera)
freeCameraResource();
* 初始化摄像头
public void initCamera() throws IOException {
if (camera != null) {
freeCameraResource();
if (checkCameraFacing(Camera.CameraInfo.CAMERA_FACING_FRONT)) {
camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT);//TODO 默认打开前置摄像头
} else if (checkCameraFacing(Camera.CameraInfo.CAMERA_FACING_BACK)) {
camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);
} catch (Exception e) {
e.printStackTrace();
freeCameraResource();
((Activity) context).finish();
if (camera == null)
setCameraParams();
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
camera.unlock();
* 检查是否有摄像头
* @param facing 前置还是后置
private boolean checkCameraFacing(int facing) {
int cameraCount = Camera.getNumberOfCameras();
Camera.CameraInfo info = new Camera.CameraInfo();
for (int i = 0; i & cameraC i++) {
Camera.getCameraInfo(i, info);
if (facing == info.facing) {
* 设置摄像头为竖屏
private void setCameraParams() {
if (camera != null) {
Parameters params = camera.getParameters();
params.set(&orientation&, &portrait&);
List supportedPictureSizes = params.getSupportedPictureSizes();
for (Camera.Size size : supportedPictureSizes) {
sizePicture = (size.height * size.width) & sizePicture ? size.height * size.width : sizeP
LogUtil.e(LOG_TAG,&手机支持的最大像素supportedPictureSizes====&+sizePicture);
setPreviewSize(params);
camera.setParameters(params);
* 根据手机支持的视频分辨率,设置预览尺寸
* @param params
private void setPreviewSize(Parameters params) {
if (camera == null) {
//获取手机支持的分辨率集合,并以宽度为基准降序排序
List previewSizes = params.getSupportedPreviewSizes();
Collections.sort(previewSizes, new Comparator() {
public int compare(Camera.Size lhs, Camera.Size rhs) {
if (lhs.width & rhs.width) {
return -1;
} else if (lhs.width == rhs.width) {
float tmp = 0f;
float minDiff = 100f;
float ratio = 3.0f / 4.0f;//TODO 高宽比率3:4,且最接近屏幕宽度的分辨率,可以自己选择合适的想要的分辨率
Camera.Size best =
for (Camera.Size s : previewSizes) {
tmp = Math.abs(((float) s.height / (float) s.width) - ratio);
Log.e(LOG_TAG, &setPreviewSize: width:& + s.width + &...height:& + s.height);
LogUtil.e(LOG_TAG,&tmp:& + tmp);
if (tmp & minDiff) {
LogUtil.e(LOG_TAG, &BestSize: width:& + best.width + &...height:& + best.height);
List range = params.getSupportedPreviewFpsRange();
int[] fps = range.get(0);
LogUtil.e(LOG_TAG,&min=&+fps[0]+&,max=&+fps[1]);
params.setPreviewFpsRange(3,7);
params.setPreviewSize(best.width, best.height);//预览比率
params.setPictureSize(480, 720);//拍照保存比率
Log.e(LOG_TAG, &setPreviewSize BestSize: width:& + best.width + &...height:& + best.height);
//TODO 大部分手机支持的预览尺寸和录制尺寸是一样的,也有特例,有些手机获取不到,那就把设置录制尺寸放到设置预览的方法里面
if (params.getSupportedVideoSizes() == null || params.getSupportedVideoSizes().size() == 0) {
mWidth = best.
mHeight = best.
setVideoSize(params);
* 根据手机支持的视频分辨率,设置录制尺寸
* @param params
private void setVideoSize(Parameters params) {
if (camera == null) {
//获取手机支持的分辨率集合,并以宽度为基准降序排序
List previewSizes = params.getSupportedVideoSizes();
Collections.sort(previewSizes, new Comparator() {
public int compare(Camera.Size lhs, Camera.Size rhs) {
if (lhs.width & rhs.width) {
return -1;
} else if (lhs.width == rhs.width) {
float tmp = 0f;
float minDiff = 100f;
float ratio = 3.0f / 4.0f;//高宽比率3:4,且最接近屏幕宽度的分辨率
Camera.Size best =
for (Camera.Size s : previewSizes) {
tmp = Math.abs(((float) s.height / (float) s.width) - ratio);
Log.e(LOG_TAG, &setVideoSize: width:& + s.width + &...height:& + s.height);
if (tmp & minDiff) {
Log.e(LOG_TAG, &setVideoSize BestSize: width:& + best.width + &...height:& + best.height);
//设置录制尺寸
mWidth = best.
mHeight = best.
* 释放摄像头资源
private void freeCameraResource() {
if (camera != null) {
camera.setPreviewCallback(null);
camera.stopPreview();
camera.lock();
camera.release();
} catch (Exception e) {
e.printStackTrace();
} finally {
* 创建视频文件
private void createRecordDir() {
File sampleDir = new File(Environment.getExternalStorageDirectory() + File.separator + &SampleVideo/video/&);
if (!sampleDir.exists()) {
sampleDir.mkdirs();
//TODO 文件名用的时间戳,可根据需要自己设置,格式也可以选择3gp,在初始化设置里也需要修改
recordFile = new File(sampleDir, System.currentTimeMillis() + &.mp4&);
recordFile = new File(sampleDir, System.currentTimeMillis() + &.mp4&);
File.createTempFile(AccountInfo.userId, &.mp4&, sampleDir);
LogUtil.e(LOG_TAG, recordFile.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
* 录制视频初始化
private void initRecord() throws Exception {
mediaRecorder = new MediaRecorder();
mediaRecorder.reset();
if (camera != null)
mediaRecorder.setCamera(camera);
mediaRecorder.setOnErrorListener(this);
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
mediaRecorder.setVideoSource(VideoSource.CAMERA);//视频源
mediaRecorder.setAudioSource(AudioSource.MIC);//音频源
mediaRecorder.setOutputFormat(OutputFormat.MPEG_4);//TODO 视频输出格式 也可设为3gp等其他格式
mediaRecorder.setAudioEncoder(AudioEncoder.AMR_NB);//音频格式
mediaRecorder.setVideoSize(mWidth, mHeight);//设置分辨率
mediaRecorder.setVideoFrameRate(25);//TODO 设置每秒帧数 这个设置有可能会出问题,有的手机不支持这种帧率就会录制失败,这里使用默认的帧率,当然视频的大小肯定会受影响
LogUtil.e(LOG_TAG,&手机支持的最大像素supportedPictureSizes====&+sizePicture);
if (sizePicture & 3000000) {//这里设置可以调整清晰度
mediaRecorder.setVideoEncodingBitRate(3 * 1024 * 512);
} else if (sizePicture &= 5000000) {
mediaRecorder.setVideoEncodingBitRate(2 * 1024 * 512);
mediaRecorder.setVideoEncodingBitRate(1 * 1024 * 512);
mediaRecorder.setOrientationHint(270);//输出旋转90度,保持竖屏录制
mediaRecorder.setVideoEncoder(VideoEncoder.H264);//视频录制格式
//mediaRecorder.setMaxDuration(Constant.MAXVEDIOTIME * 1000);
mediaRecorder.setOutputFile(recordFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
* 开始录制视频
* @param onRecordFinishListener 达到指定时间之后回调接口
public void record(final OnRecordFinishListener onRecordFinishListener) {
this.onRecordFinishListener = onRecordFinishL
createRecordDir();
//如果未打开摄像头,则打开
if (!isOpenCamera)
initCamera();
initRecord();
timeCount = 0;//时间计数器重新赋值
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
timeCount++;
//progressBar.setProgress(timeCount);//设置进度条
if (onRecordProgressListener != null) {
onRecordProgressListener.onProgressChanged(recordMaxTime, timeCount);
//达到指定时间,停止拍摄
if (timeCount == recordMaxTime) {
if (MovieRecorderView.this.onRecordFinishListener != null)
MovieRecorderView.this.onRecordFinishListener.onRecordFinish();
}, 0, 1000);
} catch (Exception e) {
e.printStackTrace();
if (mediaRecorder != null) {
mediaRecorder.release();
freeCameraResource();
* 停止拍摄
public void stop() {
stopRecord();
releaseRecord();
freeCameraResource();
* 停止录制
public void stopRecord() {
//progressBar.setProgress(0);
if (timer != null)
timer.cancel();
if (mediaRecorder != null) {
mediaRecorder.setOnErrorListener(null);//设置后防止崩溃
mediaRecorder.setPreviewDisplay(null);
mediaRecorder.stop();
} catch (Exception e) {
e.printStackTrace();
* 释放资源
private void releaseRecord() {
if (mediaRecorder != null) {
mediaRecorder.setOnErrorListener(null);
mediaRecorder.release();
} catch (Exception e) {
e.printStackTrace();
mediaRecorder =
* 获取当前录像时间
* @return timeCount
public int getTimeCount() {
return timeC
* 设置最大录像时间
* @param recordMaxTime
public void setRecordMaxTime(int recordMaxTime) {
this.recordMaxTime = recordMaxT
* 返回录像文件
* @return recordFile
public File getRecordFile() {
return recordF
* 录制完成监听
private OnRecordFinishListener onRecordFinishL
* 录制完成接口
public interface OnRecordFinishListener {
void onRecordFinish();
* 录制进度监听
private OnRecordProgressListener onRecordProgressL
* 设置录制进度监听
* @param onRecordProgressListener
public void setOnRecordProgressListener(OnRecordProgressListener onRecordProgressListener) {
this.onRecordProgressListener = onRecordProgressL
* 录制进度接口
public interface OnRecordProgressListener {
* 进度变化
* @param maxTime
最大时间,单位秒
* @param currentTime 当前进度
void onProgressChanged(int maxTime, int currentTime);
public void onError(MediaRecorder mr, int what, int extra) {
if (mr != null)
mr.reset();
} catch (Exception e) {
e.printStackTrace();
xml布局部分 movie_recorder_view.xml火山小视频如何赚钱?火山小视频赚钱技巧
作者:佚名
字体:[ ] 来源:互联网 时间:07-28 16:24:43
火山小视频怎么赚钱呢?很多朋友想要在火山小视频上赚钱,下面小编带着大家一起看看怎么玩转火山小视频
发布视频视频增加火力
用手机下载火山小视频软件到你的手机。
点击小视频进入到软件操作界面,点击加号,录制你想发布的视频!
选择吸引人的封面和标题。
录制完视频之后。可以对视频进行编辑,在右侧可以进行封面选择,和音乐选择。
在下面还可以编辑视频标题,标题可以说一半留一半。
视频编辑好了,可以选择分享视频让更多的人选择观看。
总结一下:
封面和视频要吸引人。使用软件自带拍摄工具,竖屏拍摄。
视频内容要清晰,不要抖动视频,光线要充足,别太暗。
别人给你评论,点赞,要记住回别人。
内容不违规。遵守国家法律法规,文明拍摄!
直播增加火力
这一点就不多言啦。直播可以增加火力,还可以钻石。但是内容要健康!
注意:标题主张要吸引人,有悬念。但是绝对不可做标题党,标题和内容要相符封面也要和内容相符,不做封面党。发布内容不可重复相似。不可复制搬运他人视频。
以上就是本篇文章的全部内容了,希望对各位有所帮助。如果大家还有其他方面的问题,可以留言交流,请持续关注脚本之家!
大家感兴趣的内容
12345678910
最近更新的内容}

我要回帖

更多关于 安卓6.0自带屏幕录像 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信