当前位置:首页 » 操作系统 » android网络视频源码

android网络视频源码

发布时间: 2023-03-28 16:11:19

㈠ android 编程的开源视频lvc运行源码的时候出现如下问题,怎么解决

不知道开元视频lvc,但是看log是jni代码加载出现问题

㈡ Android 使用MediaCodec实现视频的无缝切换

网络上面很多视频播放都是利用MediaPlayer+显示视图(SurfaceView、TextureView)进行本地或者网络视频的播放。那么利用MediaCodec对视频流进行硬解码的小伙伴该如何在不同的控件之间无缝切换呢?是不是TextureView的生命周期很难控制?

TextureView与SurfaceTexture构成了组合关系,可见SurfaceTexture的确是由TextureView给‘包办’了。在程序世界中,一个对象被‘包办’无非是指:

(1)这个对象什么时候被创建?

(2)这个对象如何被创建?

(3)这个对象的产生带来了哪些变化,或者说程序自从有了它有哪些不同?

(4)这个对象什么时候被销毁?

之所以对SurfaceTexture这个盯碰态对象要大动笔墨,因为它是整个显示框架的‘连接者’。

是不凯源是遇到过在播放视频返回后台再回来,发现TextureView显示视图是一片黑色?监听TextureView的生命周期你会发现,返回后台是调用了销毁方法的。那你就会问销毁之后岂不是有需要重新创建?重新创建会引来更多的问题,解码去也需要重新初始化。所以我们只能另寻他法,下面方法就是无缝切换的核心部吵腊分。

在销毁方法中我们注意,有一个返回参数。官方的解释如下

现在恍然大悟了吧,我们在销毁的时候返回false,并保存SurfaceTexture对象,然后从后台返回界面的时候在onSurfaceTextureAvailable()方法中,调用setSurfaceTexture(mSurfaceTexture)方法,这样就会恢复之前的画面了。

使用ItemTouchHelper轻松实现RecyclerView拖拽排序和滑动删除
源码地址: https://github.com/chezi008/VideoSurveillance

㈢ Android如何播放当前工程目录下的视频文件(3gp,MP4格式)要能用的源码,我的模拟器是4.03版本的

bin类型的资源文件放置在asssets目录下.
参考代码:
protected void startPlaying(String file) {
MPlayerStatus status = mPlayers_file.get(file);
if ( status == null ) {
try {
AssetFileDescriptor fileAsset = getAssetFileDesc(file);

MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setOnPreparedListener(this);
status = new MPlayerStatus(file, mPlayer);
mPlayers_file.put(file, status);
mPlayers_player.put(mPlayer, status);
Log.d("Audio startPlaying", "audio: " + file);

if (isStreaming(file))
{
File f = readStreamedUrl(file);
Log.d("AudioStartPlaying", "Streaming");
// Streaming prepare async
mPlayer.setDataSource(f.getAbsolutePath());
mPlayer.setAudioStreamType(MUSIC_STREAM);
mPlayer.prepare();
} else {
Log.d("AudioStartPlaying", "File");
// Not streaming prepare synchronous, abstract base directory
if (fileAsset == null) {
mPlayer.setDataSource(file);
}
else {
mPlayer.setDataSource(fileAsset.getFileDescriptor(),
fileAsset.getStartOffset(),
fileAsset.getLength());
}
mPlayer.prepare();
}

status.isPlaying = true;
} catch (Exception e) { e.printStackTrace(); }

}
else if ( !status.isPlaying ) {
try {

status.player.prepare();
status.player.start();
status.isPlaying = true;
status.isPaused = false;
} catch (Exception e) { e.printStackTrace(); }
}
// Otherwise check to see if it's paused, if it is, resume
else if ( status.isPaused ) {
status.player.start();
status.isPaused = false;
}
}

㈣ 请问一下android4.1自带的视频播放器源码目录在哪里

用握镇手的是段嫌F:\android_source_code\android-4.0.4_r1\packages\旅仔apps\Gallery2

㈤ android下载图片和视频到本地,求代码,求案例

下面是android多线程下载例子截图:

java">packagemm.shandong.com.testmultithreaddownload;
importandroid.app.ProgressDialog;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.Environment;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.text.TextUtils;
importandroid.view.View;
importandroid.widget.EditText;
importandroid.widget.Toast;
importjava.io.File;
importmm.shandong.com.testmultithreaddownload.thread.UpdateUIThread;
importmm.shandong.com.testmultithreaddownload.util.FileUtil;
{
ProgressDialogpb;
EditTexteditText;
Handlerhandler;
=null;
///文件路径
privateStringurl=
"http://gdown..com/data/wisegame/3c00add7144d3915/kugouyinle.apk";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_multi_thread_down_load);
editText=(EditText)findViewById(R.id.editText);
initHandler();
}
publicvoidinitHandler(){
handler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
caseFileUtil.startDownloadMeg:
pb.setMax(mUpdateUIThread.getFileSize());//开始
break;
caseFileUtil.updateDownloadMeg:
if(!mUpdateUIThread.isCompleted())//下载进度消息
{
pb.setProgress(mUpdateUIThread.getDownloadSize());
pb.setMessage("下载速度:"+
mUpdateUIThread.getDownloadSpeed()+"k/秒"+
"下载百分比"+mUpdateUIThread.getDownloadPercent()+"%");
}else{
pb.setMessage("下载完成");
}
break;
caseFileUtil.endDownloadMeg:
Toast.makeText(.this,
"下载完成,马上安装",Toast.LENGTH_SHORT).show();
/*apk安装界面跳转*/
Stringfilename=FileUtil.getFileName(url);
Stringstr="/myfile/"+filename;
StringfileName=Environment.getExternalStorageDirectory()+str;
Intentintent=newIntent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(newFile(fileName)),
"application/vnd.android.package-archive");
startActivity(intent);
break;
}
super.handleMessage(msg);
}
};
}
///开始下载软件
publicvoidstartDownLoad(Viewview){
if(TextUtils.isEmpty(editText.getText().toString())){
Toast.makeText(this,"你输入下载文件地址",Toast.LENGTH_SHORT).show();
return;
}else{
url=editText.getText().toString();
}
//启动线程初始化下载参数
mUpdateUIThread=newUpdateUIThread(handler,url,
FileUtil.setMkdir(this)+File.separator,FileUtil.getFileName(url));
pb=newProgressDialog(this);
pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pb.show();
mUpdateUIThread.start();
}
}

例子代码太长,只能给你一部分,如果想看完整例子代码,请去360手机助手下载安卓学习手册,点击里面的源码可以查看完成代码,方面快速,里面还有安卓的其它小例子,共108个。

㈥ iOS Android双端直播源码怎样完整搭建

手机直播原生源码会搭建很多功能,就拿云豹直播APP为例,看下能搭建哪些功能吧。1.主播系统(1):后台可以设置用户注册后是否允许拥有自己的直播间,选择允许,那用户注册后即可直接直播。相反,用户只能申请签约主播,然后由后台审核通过才可以用户自己的房间,进行直播。(2):主播可以接收观众赠送的礼物,并获得相应的提成。主播可以将自己的虚拟币进行提现。(3):主播等级及分类,后台可以设置主播的等级以及分类,分类在网站的首页左侧同步显示。2.礼物系统程序默认已有部分礼物,如果需要添加更多礼物,可以到后台礼物管理菜单添加即可,礼物可以根据需要和等级来设置礼物的效果以及价格。另外程序还设置了红包系统,并有红包排行榜的功能。3.靓号系统主播和用户都可以购买靓号,主播购买后房间地址以及房间号码更容易记住,观众购买靓号后更有面儿~靓号商城中的靓号都是需要后台添加的,可以单个添加靓号并设置价格,也可以批量添加靓号设置价格。4.游戏系统目前拥有的游戏有一款,砸金蛋。后台可以设置游戏的中奖概率和奖品内容,同样可以通过后台来金控游戏的参与记录,获奖记录。5.道具系统用户可以购买vip,可以在房间人数已满的时候购买然后进直播间用户购买座驾后,登录房间可以获得醒目座驾效果展示6.数据库管理程序后台可以一键备份以及恢复备份的数据库,同时也可以后台直接编辑sql命令来执行数据库命令。7.均衡负载功能此功能可以无限添加FMS直播服务器,来分摊视频流的带宽负担。首先,程序完全可以将网站程序与FMS视频流来分开,也就是说,网站可以单独使用一台服务器或者虚拟主机,FMS则使用另外一台独立的服务器,这样就不会因为视频直播流量大影响网站的访问速度。其次,在运营中,一旦用户激增,FMS服务器的带宽负担就会随之增加,这个时候除了使用cnd加速以及其他手段进行带宽拓展外,程序自带的这个功能一样可以帮到你。只需要另外配置FMS服务器对接程序,即可手动将部分主播的视频流转移到新的服务器中,由此来解决带宽问题。8.充值代理功能,9.排行榜功能排行榜分为富豪排行榜明星排行榜人气排行榜礼物红人榜每个榜单有分为日榜周榜月榜超级榜10.充值系统用户可以再先充值充值系统支持网银充值卡游戏点卡等多种充值方式用户充值完成后可以兑换成虚拟币秀币与秀豆a.秀币:仅适用于新动秀场支付,可购买礼物、买靓号等。b.秀豆:仅适用于新动秀场兑换,仅可用来兑换秀币。11.个人中心a.我的个人资料:可以修改我的昵称、个人签名、姓名、性别、所在地、生日、爱好等b.我的房管:查看一个月内登录和未登录过的c.我的靓号:列出会员的所有靓号d.我的道具:查看我的道具e.我的账单:查看我的账单f.充值商城:进行充值g.我的收藏:查看收藏的房间h.关注我的和我关注的:关注列表I.我的家族:这个比较特殊,只有家族长才能在个人中心显示我的家族,点击进去管理家族,家族成员是没有的。12.家族系统a.申请成立家族b.家族申请后台审核功能c.家族主播列表查看d.家族主播收益详情查看e.家族主播收益分成统计,以及族长提现功能f.主播申请家族家族,家族族长审核通过g.家族族长的独立管理后台面板如果您也想做一款直播产品,给您推荐云豹网络科技有限公司,他们经过市场的全面调研,结合先进的搭建技术,创出自己的一套流程。

㈦ android视频源码中有没有加水印的功能

其实ffmpeg添加水印功能在网上例子很多,也都大同小异,但在Android端,比较难搞的地方其实是ffmpeg编译出能带水印添加功能的so库文件,其中:ffmpeg的drawtext filter依赖freetype的so,需要先编一个android平台下freetype的so,而在android平台的编译ffmpeg时,难搞的pkg-cfg总是检查依赖的freetype失败,迫不得已修改了ffmpeg的configure,不在对freetype库做检查,但编译配置的时候需要手动指定freetype so的搜索路径。
我使用的配置如下:

[plain] view plain
/usr/local/lib/pkgconfig $FFMPEG_ROOT/configure --target-os=linux \
--prefix=$PREFIX \
--disable-encoders \
--disable-decoders \
--disable-muxers \
--disable-demuxers \
--disable-parsers \
--disable-bsfs \
--disable-protocols \
--disable-devices \

㈧ android怎么播放rtsp实时网络串流代码

android播放rtsp实时网络串流核心代码如下:

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;
public class rtspActivity extends Activity {
/** Called when the activity is first created. */
Button playButton ;
VideoView videoView ;
EditText rtspUrl ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rtspUrl = (EditText)this.findViewById(R.id.url);
playButton = (Button)this.findViewById(R.id.start_play); playButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
PlayRtspStream(rtspUrl.getEditableText().toString()); } });
videoView = (VideoView)this.findViewById(R.id.rtsp_player); }
//play rtsp stream
private void PlayRtspStream(String rtspUrl){
videoView.setVideoURI(Uri.parse(rtspUrl));
videoView.requestFocus();
videoView.start();
}
}

热点内容
工伤辅助器如何配置 发布:2025-05-20 00:25:13 浏览:600
opencv存储图片 发布:2025-05-20 00:16:10 浏览:952
ug编程链轮 发布:2025-05-20 00:14:03 浏览:99
手机锁屏壁纸配置失败怎么解决 发布:2025-05-20 00:10:38 浏览:756
源码编译的软件怎么卸载 发布:2025-05-20 00:05:29 浏览:488
access脚本 发布:2025-05-19 23:38:54 浏览:219
硬盘内存储盘材质 发布:2025-05-19 23:38:53 浏览:716
五台电脑服务器配置 发布:2025-05-19 23:33:05 浏览:277
苹果爱奇艺后台缓存 发布:2025-05-19 23:32:01 浏览:60
perl复制文件夹 发布:2025-05-19 23:31:19 浏览:294