微信自动播放视频格式上的小视屏有哪些格式

当前位置:
微信 微信小视屏 微商
原创非商业授权(独家)
&&&&星级:
编号:上传时间:大小:23.701 M
尺寸:80像素 格式:AEP (cs6)颜色:颜色模式
扫一扫,下载知聊
关&键&词:微信小视屏 微信小视频 AE模板 AE CS6 CC容易修改 快捷 微信 短片 广告 创意 手机微信小视 搞笑 手机微信 小视频 微商 徐峥 包贝尔
多媒体 影视编辑 AE模板素材
图片描述:微信 微信小视屏 微商 微信小视频其他AE模板下载
AE CS6 CC容易修改 快捷 视频有声音可以外加声音
微信 短片 广告 创意 手机微信小视 搞笑 手机微信 小视频 微商 徐峥 包贝尔
&昵图网所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系 。
商用正版图片当前访客身份:游客 [
当前位置:
发布于 日 8时,
本文为用&MediaRecorder&录制小视频的控件,可以设置视频录制的时间、空间大小、初始时是否打开摄像头等。&此控件为组合控件,继承自&LinearLayout&,为防止出错,需实现&android.media.MediaRecorder.OnErrorListener&接口。
代码片段(7)
1.&[图片] 小视频录制界面.png&&&&
MovieRecorderView.java&~&9KB&&&&
import java.io.F
import java.io.IOE
import java.util.T
import java.util.TimerT
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.util.AttributeS
import android.view.LayoutI
import android.view.SurfaceH
import android.view.SurfaceHolder.C
import android.view.SurfaceV
import android.widget.LinearL
import android.widget.ProgressB
import com.contron.dgyj.R;
import com.mon.G
import com.contron.dgyj.im.ImG
import com.lidroid.xutils.util.LogU
* 视频播放控件
* @author liuyinjun
public class MovieRecorderView extends LinearLayout implements OnErrorListener {
private SurfaceView mSurfaceV
private SurfaceHolder mSurfaceH
private ProgressBar mProgressB
private MediaRecorder mMediaR
private Camera mC
private Timer mT// 计时器
private OnRecordFinishListener mOnRecordFinishL// 录制完成回调接口
private int mW// 视频分辨率宽度
private int mH// 视频分辨率高度
private boolean isOpenC// 是否一开始就打开摄像头
private int mRecordMaxT// 一次拍摄最长时间
private int mTimeC// 时间计数
private File mVecordFile =// 文件
public MovieRecorderView(Context context) {
this(context, null);
public MovieRecorderView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
public MovieRecorderView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MovieRecorderView, defStyle, 0);
mWidth = a.getInteger(R.styleable.MovieRecorderView_width, 320);// 默认320
mHeight = a.getInteger(R.styleable.MovieRecorderView_height, 240);// 默认240
isOpenCamera = a.getBoolean(R.styleable.MovieRecorderView_is_open_camera, true);// 默认打开
mRecordMaxTime = a.getInteger(R.styleable.MovieRecorderView_record_max_time, 10);// 默认为10
LayoutInflater.from(context).inflate(R.layout.movie_recorder_view, this);
mSurfaceView = (SurfaceView) findViewById(R.id.surfaceview);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mProgressBar.setMax(mRecordMaxTime);// 设置进度条最大量
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(new CustomCallBack());
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
a.recycle();
* @author liuyinjun
private class CustomCallBack implements Callback {
public void surfaceCreated(SurfaceHolder holder) {
if (!isOpenCamera)
initCamera();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
public void surfaceDestroyed(SurfaceHolder holder) {
if (!isOpenCamera)
freeCameraResource();
* 初始化摄像头
* @author liuyinjun
* @throws IOException
private void initCamera() throws IOException {
if (mCamera != null) {
freeCameraResource();
mCamera = Camera.open();
} catch (Exception e) {
e.printStackTrace();
freeCameraResource();
if (mCamera == null)
setCameraParams();
mCamera.setDisplayOrientation(90);
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
mCamera.unlock();
* 设置摄像头为竖屏
* @author liuyinjun
private void setCameraParams() {
if (mCamera != null) {
Parameters params = mCamera.getParameters();
params.set("orientation", "portrait");
mCamera.setParameters(params);
* 释放摄像头资源
* @author liuyinjun
private void freeCameraResource() {
if (mCamera != null) {
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
mCamera.lock();
mCamera.release();
private void createRecordDir() {
File sampleDir = new File(Environment.getExternalStorageDirectory() + File.separator + "im/video/");
if (!sampleDir.exists()) {
sampleDir.mkdirs();
File vecordDir = sampleD
// 创建文件
mVecordFile = File.createTempFile("recording", ".mp4", vecordDir);//mp4格式
LogUtils.i(mVecordFile.getAbsolutePath());
} catch (IOException e) {
* @author liuyinjun
* @throws IOException
private void initRecord() throws IOException {
mMediaRecorder = new MediaRecorder();
mMediaRecorder.reset();
if (mCamera != null)
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setOnErrorListener(this);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setVideoSource(VideoSource.CAMERA);// 视频源
mMediaRecorder.setAudioSource(AudioSource.MIC);// 音频源
mMediaRecorder.setOutputFormat(OutputFormat.MPEG_4);// 视频输出格式
mMediaRecorder.setAudioEncoder(AudioEncoder.AMR_NB);// 音频格式
mMediaRecorder.setVideoSize(mWidth, mHeight);// 设置分辨率:
// mMediaRecorder.setVideoFrameRate(16);// 这个我把它去掉了,感觉没什么用
mMediaRecorder.setVideoEncodingBitRate(1 * 1024 * 512);// 设置帧频率,然后就清晰了
mMediaRecorder.setOrientationHint(90);// 输出旋转90度,保持竖屏录制
mMediaRecorder.setVideoEncoder(VideoEncoder.MPEG_4_SP);// 视频录制格式
// mediaRecorder.setMaxDuration(Constant.MAXVEDIOTIME * 1000);
mMediaRecorder.setOutputFile(mVecordFile.getAbsolutePath());
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
* 开始录制视频
* @author liuyinjun
* @param fileName
视频储存位置
* @param onRecordFinishListener
达到指定时间之后回调接口
public void record(final OnRecordFinishListener onRecordFinishListener) {
this.mOnRecordFinishListener = onRecordFinishL
createRecordDir();
if (!isOpenCamera)// 如果未打开摄像头,则打开
initCamera();
initRecord();
mTimeCount = 0;// 时间计数器重新赋值
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
public void run() {
// TODO Auto-generated method stub
mTimeCount++;
mProgressBar.setProgress(mTimeCount);// 设置进度条
if (mTimeCount == mRecordMaxTime) {// 达到指定时间,停止拍摄
if (mOnRecordFinishListener != null)
mOnRecordFinishListener.onRecordFinish();
}, 0, 1000);
} catch (IOException e) {
e.printStackTrace();
* 停止拍摄
* @author liuyinjun
public void stop() {
stopRecord();
releaseRecord();
freeCameraResource();
* 停止录制
* @author liuyinjun
public void stopRecord() {
mProgressBar.setProgress(0);
if (mTimer != null)
mTimer.cancel();
if (mMediaRecorder != null) {
// 设置后不会崩
mMediaRecorder.setOnErrorListener(null);
mMediaRecorder.setPreviewDisplay(null);
mMediaRecorder.stop();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
* 释放资源
* @author liuyinjun
private void releaseRecord() {
if (mMediaRecorder != null) {
mMediaRecorder.setOnErrorListener(null);
mMediaRecorder.release();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
mMediaRecorder =
public int getTimeCount() {
return mTimeC
* @return the mVecordFile
public File getmVecordFile() {
return mVecordF
* 录制完成回调接口
* @author liuyinjun
public interface OnRecordFinishListener {
public void onRecordFinish();
public void onError(MediaRecorder mr, int what, int extra) {
if (mr != null)
mr.reset();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
movie_recorder_view.xml&~&747B&&&&
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_dark"
android:orientation="vertical"&
&SurfaceView
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
&ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="2dp"
&/LinearLayout&
attrs.xml&~&509B&&&&
&?xml version="1.0" encoding="utf-8"?&
&resources&
&declare-styleable name="MovieRecorderView"&
&!-- 开始是否打开摄像头 --&
&attr name="is_open_camera" format="boolean" /&
&!-- 一次拍摄最长时间 --&
&attr name="record_max_time" format="integer"/&
&!-- 视频分辨率宽度 --&
&attr name="width" format="integer"/&
&!-- 视频分辨率高度 --&
&attr name="height" format="integer"/&
&/declare-styleable&
&/resources&
MainActivity.java&~&3KB&&&&
package com.example.
import android.app.A
import android.os.B
import android.os.H
import android.os.M
import android.view.MotionE
import android.view.V
import android.view.View.OnTouchL
import android.widget.B
import android.widget.T
import com.example.myvideo.MovieRecorderView.OnRecordFinishL
public class MainActivity extends Activity {
private MovieRecorderView mRecorderV
private Button mShootB
private boolean isFinish =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecorderView = (MovieRecorderView) findViewById(R.id.movieRecorderView);
mShootBtn = (Button) findViewById(R.id.shoot_button);
mShootBtn.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mRecorderView.record(new OnRecordFinishListener() {
public void onRecordFinish() {
handler.sendEmptyMessage(1);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
if (mRecorderView.getTimeCount() & 1)
handler.sendEmptyMessage(1);
if (mRecorderView.getVecordFile() != null)
mRecorderView.getVecordFile().delete();
mRecorderView.stop();
Toast.makeText(MainActivity.this, "视频录制时间太短", Toast.LENGTH_SHORT).show();
public void onResume() {
super.onResume();
isFinish =
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
isFinish =
mRecorderView.stop();
public void onPause() {
super.onPause();
public void onDestroy() {
super.onDestroy();
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
finishActivity();
private void finishActivity() {
if (isFinish) {
mRecorderView.stop();
VideoPlayerActivity.startActivity(this, mRecorderView.getVecordFile().toString());
* 录制完成回调
* @author liuyinjun
public interface OnShootCompletionListener {
public void OnShootSuccess(String path, int second);
public void OnShootFailure();
activity_main.xml&~&925B&&&&
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:orientation="vertical"&
&com.example.myvideo.MovieRecorderView
android:id="@+id/movieRecorderView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_margin="3dp" /&
android:id="@+id/shoot_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/bg_movie_add_shoot"
android:text="按住拍"
android:textColor="#ECEBF1"/&
&/LinearLayout&
7.&[图片] bg_movie_add_shoot.png&&&&
开源中国-程序员在线工具:
相关的代码(1483)
楼主贴一下Manifest,权限!!!!
22楼:赵瑞1 发表于
VideoPlayerActivity代码可以帖一下吗?谢谢啦
23楼:Lkatsu 发表于
引用来自“itzyjr”的评论发现这个demo里面有个最大的问题,就是视频预览被拉伸,并且这个拉伸的问题是最难解决的。视频拉伸的问题解决了么?
24楼:hebeiping 发表于
VideoPlayerActivity没有呀,xutil框架里面也没这个类?能否提供一下,还有MainActivity.java里面的mRecorderView.getVecordFile()这个类方法在MovieRecorderView.java中也没有,是否写错了是getmVecordFile()类方法?如能提供源码,不胜感激,
25楼:曾文韬 发表于
VideoPlayerActivity没有,能发份源码吗?,谢谢!
26楼:David520520 发表于
楼主您好 我想问下 &你这个demo视频长宽比例可以任意吗?视频会不会拉伸啊?我找了很多方法,度不能解决拉伸的问题。。。
27楼:David520520 发表于
引用来自“itzyjr”的评论发现这个demo里面有个最大的问题,就是视频预览被拉伸,并且这个拉伸的问题是最难解决的。引用来自“Lkatsu”的评论视频拉伸的问题解决了么?视频拉伸是怎么解决的啊?求教
28楼:你也叫风语者 发表于
大神,有个问题。第一次拍摄是竖着拍的。再点一次就横屏了,如何解决?谢谢
29楼:你也叫风语者 发表于
接上个问题,我把&VideoPlayerActivity.startActivity(this, mRecorderView.getVecordFile().toString());注释掉了,没有跳转。第一次拍摄是竖着拍的。再点一次就横屏了
30楼:水花淡淡 发表于
请教个问题:我用MediaRecorder录制视屏时,对摄像头进行了camera.setDisplayOrientation(90);//旋转90度,预览的图像是正常的。但是录制后输出的视屏是逆时针90度旋转的,我用setOrientationHint(270),0-270都试过都不能使得输出视屏正常显示(我是竖屏录制的SCREEN_ORIENTATION_PORTRAIT)。万分感谢
31楼:_Color 发表于
nb,很好用
32楼:心若向阳 发表于
为什么打开相机失败!麻烦大神提示一下
33楼:心若向阳 发表于
VideoPlayerActivity这个类是什么类知道的发一下下好吗?
34楼:赵瑞1 发表于
VideoPlayerActivity这个类麻烦可以发下吗? 谢谢啦
35楼:firefoxer28 发表于
你好,我现在的项目很紧迫,
这里提供的代码缺少manifest和几个类。能否将源码发给我参考一下?
万分感谢!!!!!
36楼:jaikydota 发表于
此代码牛B,支持下
37楼:珈若 发表于
可以发下源码吗
38楼:Thanks 发表于
39楼:zhujl1989 发表于
能发下源码么。
40楼:人生如歌 发表于
因为前段时间比较忙,所以不好意思都没有进来看看,大家现在还有什么需求或者疑问可以加一下qq:,加的时候注明一下疑问,谢谢
开源从代码分享开始
人生如歌的其它代码我在外面混女人,一个朋友给我录了个小视频,出于开玩笑的形式给我把小视频发微信上了 - 110网免费法律咨询
您的位置:
&& 查看咨询        今日活跃律师: &&&&&&&&&&
该问题已关闭
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
的回复获得奖章一枚
我在外面混女人,一个朋友给我录了个小视频,出于开玩笑的形式给我把小视频发微信上了
内蒙古&04-11 18:04&&悬赏 0&&发布者:ask201…… & 回答:(0)
我在外面混女人,一个朋友给我录了个小视频,出于开玩笑的形式给我把小视频发微信上了,结果我媳妇儿上我微信的了,我媳妇儿看见之后失踪了,如果我媳妇儿出了什么事我这个朋友负不负法律责任
您也有法律问题? 您可以 发布咨询,我们的律师随时在线为您服务
问题答案可能在这里 →
吉安推荐律师
江西景德镇
最佳律师解答
(颜培卿)()&
(朱孟喜)()&
(钱卫龙)()&
(冯宇春)()&
(冯大志)()&
(周文才)()&
最新回复律师
黑龙江 哈尔滨
人气:66080
人气:107652
人气:4760
北京 东城区
人气:38819
上海 奉贤区
人气:10845
人气:12583不会保存微信里的小视频?360清理大师来帮你!
不会保存微信里的小视频?360清理大师来帮你!
导读:微信用久了,总有一些舍不得删除的小视频。不少网友只会在微信里看这些视频,却不知道如何保存下来。
微信用久了,总有一些舍不得删除的小视频。不少网友只会在微信里看这些视频,却不知道如何保存下来。而一些安卓的清理工具在清理时更会将各类视频不加区分地删除,如此会导致一些网友希望保存的珍贵片段没有了。清理大师在最新的4.7.1版本中创造性地推出了&微信小视频保存功能&,能够让珍贵的视频片段永久保存下来。
图1:在搜索引擎里查询如何保存微信视频的网友不计其数
在搜索引擎中搜索&保存微信视频&、&导出微信视频&、&微信保存的视频在哪&等问题,可搜到近2000万条结果,远远高于如何保存表情、如何保存照片等需求。可见,不会保存微信视频的网友为数不少,而网络上提供的一些保存经验、方法大多非常复杂,对于大多数用户来说过于专业了。
360清理大师是安卓手机清理类应用中最受用户欢迎的一款工具,因为清理快速、彻底而被用户高度认可。在4.7.1版本中,360清理大师重新调整了微信清理的分类,将小视频从&拍摄的及视频&中独立出来,变成单独的分类&微信小视频&,用户可以选择清理,也可以手动保存那些拍摄的微信小视频。
图2:360清理大师4.7.1版中新增了保存微信视频功能
点击&&微信小视频&进入视频列表,用户就可以选择自主哪些视频需要被清除,哪些视频需要导出到手机相册。这样一来,手机用户就不会将一些珍贵的视频片段一股脑儿删掉了。
这一非常实用的功能,就在360清理大师的&专清&中,进入&软件专清&,就可以对微信、QQ等最常用的App进行清理。
图3:从&软件专清&中即可进入微信、QQ清理
因为安卓手机用的时间越久就会产生越多的系统碎片与文件垃圾,占用了大量的系统资源,导致手机越来越慢。因此,还需要经常使用360清理大师进行清理作业,以免过多的系统垃圾让手机的体验变差。
安卓手机用户微信里的小视频终于有便捷的保存方法了,赶紧升级360清理大师试试吧。微信里的小视频怎么导出、怎么分享到朋友圈?--百度百家
微信里的小视频怎么导出、怎么分享到朋友圈?
分享到微信朋友圈
微信里的小视频怎么导出、怎么分享到朋友圈?3
大约从去年开始,微信小视频突然火了起来,不管是好友转发、群里聊天或者朋友圈分享,一个小视频比文字、表情、图片、语音好玩的多,而关于微信小视频的问题也逐渐多了起来,从怎么转发到怎么导出再到怎么分享到朋友圈,今天,寻老师一一解答。
1微信小视频如何转发给好友
微信群聊里的小视频或者好友聊天中的小视频,直接点击选择转发即可,而至于朋友圈中的小视频,先收藏即可转发,这都非常简单,无需多表。
2如何将微信小视频导出到电脑
将微信小视频导出到电脑可能是很多人的需求之一,其实这也非常简单,首先下载PC端微信,也就是腾讯官方出品的腾讯电脑客户端,然后登陆跟你手机一样的微信账号,接着在手机群聊或者好友聊天里,选择你要导出的小视频,转发给你任一一个好友或者文件传输助手,然后在PC端看到转发的小视频如下图。
接着,直接打开电脑资源管理器,点击文档,在文档中点击“WeChat Flies”文件夹,然后会打开一些以你微信账号为文件名的文件夹,点击以你登录的微信账号为名的文件夹,然后在Video文件夹里就存储着你要导出的小视频了,并都已下载完成。
3微信小视频如何分享到朋友圈
将微信小视频分享到朋友圈着实是个难题,就如语音一样,腾讯并不支持直接将别人的小视频分享到微信朋友圈,只允许自己录制一段小视频分享。基于此,我们只能通过一些变相的方法将别人的小视频分享到朋友圈,两种方法:第一,按照上述“2如何将小视频导出到电脑”的方法在电脑里直接播放小视频,然后在手机微信上发送朋友圈的时候,直接点击小视频,录制电脑上放映的视频,当然这里的画质、声音会有所出入。第二个方法则可以完整的将别人的小视频分享到你朋友圈,不过方法稍有复杂,其本质是将别人的小视频按照你录制小视频的命名规则重命名,让微信误以为这是你录制的小视频。
首先,先打开朋友圈,自己录制一段小视频,在“发送”按钮的左侧有三个点,点击它们,选择“临时保存小视频”,此时,你录制的小视频会保存在手机里,其默认保存路径为:sdcard0/Tencent/MicroMsg/最长后缀名称文件夹/draft,我们假设此文件夹为“文件夹A”,在“文件夹A”里,你会发现一些文件,这些命名毫无规则的文件就表示你用微信录制的小视频,比如下图中,时间为20:01的那两个文件就分别代表20:01分刚刚录制的小视频和小视频的预览图。
然后将你另一个也就是要分享到朋友圈的小视频转发给任何一个好友,你转发的小视频默认存储路径为:sdcard0/Tencent/MicroMsg/最长后缀名称文件夹/video,我们假设此文件夹为“文件夹B”,在“文件夹B”里,你转发的每一个小视频也都会有两个文件,同样分别代表该小视频和小视频的预览图,这时候,选择这两个文件,将其复制或者移动到“文件夹A”。
接下来是重点,将大小为4.21MB的文件名改为大小为183KB的文件名,方法可以先复制文件18KB的文件名,然后给18KB的文件重命名,然后给大小4.21MB的文件粘贴刚刚复制的东西,并删除其后面的后缀mp4。接着使用同样方法将大小27KB的文件名改为大小为9KB的文件名,并记得将其JPG的后缀改为thumb。
最后在微信朋友圈点击发送小视频,即可出现这个大小为4.21MB的小视频了,分享即可。
方法稍有复杂,如果对视频画质要求不是很高,最好还是先将小视频导出到电脑,然后直接录制电脑里放映的小视频哦。
本文由寻老师原创,每周一篇高质量深度好文、一篇电脑技巧、一篇学习干货,欢迎关注寻老师微信公众号:daxueshengZT
分享到微信朋友圈
在手机阅读、分享本文
还可以输入250个字
推荐文章RECOMMEND
阅读:1488
阅读:10万
阅读:10万
热门文章HOT NEWS
苍蝇不盯无缝的蛋,做空机构盯上阿里巴巴的原因很值得重视。
新榜——内容创业服务平台
万能的大熊
果粉俱乐部
百度新闻客户端
百度新闻客户端
百度新闻客户端
扫描二维码下载
订阅 "百家" 频道
观看更多百家精彩新闻

我要回帖

更多关于 微信支持的视频格式 的文章

 

随机推荐