首页 文章 精选 留言 我的

精选列表

搜索[媒体服务],共10027篇文章
优秀的个人博客,低调大师

Kodi “Leia”18.5 发布,XBOX 媒体中心

距离Kodi 18.4发布已经过去了几个月,目前,Kodi 18.5也已经正式发布。 据介绍,18.5版本并没有没有新功能,而是重点在于压缩错误以及提高稳定性和性能。 该团队尚未发布主要更改的列表,但是在这个新版本中已经解决了多个问题,包括接口问题的修复,PVR组件的调整等等。 18.4与18.5的详细对比:https://github.com/xbmc/xbmc/compare/18.4-Leia...18.5-Leia 最新版Kodi的下载地址:https://kodi.tv/download 参考消息:https://betanews.com/2019/11/18/kodi-18-5-leia/

优秀的个人博客,低调大师

android中的多媒体应用camera

MainActivity.java 代码 packagecom.amaker.ch11.app; importjava.io.File; importjava.io.FileOutputStream; importjava.io.IOException; importandroid.app.Activity; importandroid.graphics.PixelFormat; importandroid.hardware.Camera; importandroid.os.AsyncTask; importandroid.os.Bundle; importandroid.os.Environment; importandroid.view.KeyEvent; importandroid.view.SurfaceHolder; importandroid.view.SurfaceView; publicclassMainActivityextendsActivity{ //声明拍照界面组件SurfaceView privateSurfaceViewsurfaceView; //声明界面控制组件SurfaceHolder privateSurfaceHoldersurfaceHolder; //声明照相机 privateCameracamera; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); //实例化拍照界面组件 surfaceView=(SurfaceView)findViewById(R.id.preview); //从SurfaceView中获得SurfaceHolder surfaceHolder=surfaceView.getHolder(); //为SurfaceHolder添加回调 surfaceHolder.addCallback(surfaceCallback); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } //响应按键事件 @Override publicbooleanonKeyDown(intkeyCode,KeyEventevent){ if(keyCode==KeyEvent.KEYCODE_CAMERA||keyCode==KeyEvent.KEYCODE_SEARCH){ takePic(); returntrue; } returnsuper.onKeyDown(keyCode,event); } //拍照方法 privatevoidtakePic(){ //停止预览 camera.stopPreview(); //拍照 camera.takePicture(null,null,pictureCallback); } //照片回调 Camera.PictureCallbackpictureCallback=newCamera.PictureCallback(){ @Override publicvoidonPictureTaken(byte[]data,Cameracamera){ newSavePictureTask().execute(data); camera.startPreview(); } }; //保存照片任务类 classSavePictureTaskextendsAsyncTask<byte[],String,String>{ @Override protectedStringdoInBackground(byte[]...params){ //创建文件 Filepicture=newFile(Environment.getExternalStorageDirectory(),"picture.jpg"); //如果文件存在删除掉 if(picture.exists())picture.delete(); try{ //获得文件输出流 FileOutputStreamfos=newFileOutputStream(picture.getPath()); //写到该文件 fos.write(params[0]); //关闭文件流 fos.close(); }catch(Exceptione){ e.printStackTrace(); } returnnull; } } //SurfaceHodler回调,处理打开相机,关闭相机以及照片尺寸的改变 SurfaceHolder.CallbacksurfaceCallback=newSurfaceHolder.Callback(){ @Override publicvoidsurfaceCreated(SurfaceHolderholder){ //打开相机 camera=Camera.open(); try{ //设置预览 camera.setPreviewDisplay(holder); }catch(IOExceptione){ e.printStackTrace(); } } @Override publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth, intheight){ //获得相机参数 Camera.Parametersparameters=camera.getParameters(); //设置照片大小 parameters.setPreviewSize(width,height); //设置照片格式 parameters.setPictureFormat(PixelFormat.JPEG); //设置相机参数 camera.setParameters(parameters); //开始预览 camera.startPreview(); } @Override publicvoidsurfaceDestroyed(SurfaceHolderholder){ //停止预览 camera.stopPreview(); //释放相机资源 camera.release(); camera=null; } }; } 代码 package com.amaker.ch11.app; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.graphics.PixelFormat; import android.hardware.Camera; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.view.KeyEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; public class MainActivity extends Activity { // 声明拍照界面组件SurfaceView private SurfaceView surfaceView; // 声明界面控制组件SurfaceHolder private SurfaceHolder surfaceHolder; // 声明照相机 private Camera camera; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 实例化拍照界面组件 surfaceView = (SurfaceView)findViewById(R.id.preview); // 从SurfaceView中获得SurfaceHolder surfaceHolder = surfaceView.getHolder(); // 为SurfaceHolder 添加回调 surfaceHolder.addCallback(surfaceCallback); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } // 响应按键事件 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_CAMERA||keyCode==KeyEvent.KEYCODE_SEARCH){ takePic(); return true; } return super.onKeyDown(keyCode, event); } // 拍照方法 private void takePic(){ // 停止预览 camera.stopPreview(); // 拍照 camera.takePicture(null,null, pictureCallback); } // 照片回调 Camera.PictureCallback pictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { new SavePictureTask().execute(data); camera.startPreview(); } }; // 保存照片任务类 class SavePictureTask extends AsyncTask<byte[],String,String>{ @Override protected String doInBackground(byte[]... params) { // 创建文件 File picture = new File(Environment.getExternalStorageDirectory(),"picture.jpg"); // 如果文件存在删除掉 if(picture.exists())picture.delete(); try { // 获得文件输出流 FileOutputStream fos = new FileOutputStream(picture.getPath()); // 写到该文件 fos.write(params[0]); // 关闭文件流 fos.close(); } catch (Exception e) { e.printStackTrace(); } return null; } } // SurfaceHodler 回调,处理打开相机,关闭相机以及照片尺寸的改变 SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { // 打开相机 camera = Camera.open(); try { // 设置预览 camera.setPreviewDisplay(holder); } catch (IOException e) { e.printStackTrace(); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // 获得相机参数 Camera.Parameters parameters = camera.getParameters(); // 设置照片大小 parameters.setPreviewSize(width, height); // 设置照片格式 parameters.setPictureFormat(PixelFormat.JPEG); // 设置相机参数 camera.setParameters(parameters); // 开始预览 camera.startPreview(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { // 停止预览 camera.stopPreview(); // 释放相机资源 camera.release(); camera = null; } }; } 本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1079348

优秀的个人博客,低调大师

android中的多媒体应用MediaPlayer

MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用MediaPlayer,要视情况选择了。MediaPlayer播放音频比较简单,但是要播放视频就需要SurfaceView。SurfaceView比普通的自定义View更有绘图上的优势,它支持完全的OpenGL ES库。 迷你音乐播放器 /Chapter11_Media_MiniPlayer/src/com/amaker/test/MainActivity.java 代码 packagecom.amaker.test; importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.media.MediaPlayer; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.ImageButton; publicclassMainActivityextendsActivityimplementsMediaPlayer.OnCompletionListener{ privateImageButtonplay,pause,stop; privateMediaPlayermp; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); play=(ImageButton)findViewById(R.id.play); pause=(ImageButton)findViewById(R.id.pause); stop=(ImageButton)findViewById(R.id.stop); play.setOnClickListener(newView.OnClickListener(){ publicvoidonClick(Viewview){ play(); } }); pause.setOnClickListener(newView.OnClickListener(){ publicvoidonClick(Viewview){ pause(); } }); stop.setOnClickListener(newView.OnClickListener(){ publicvoidonClick(Viewview){ stop(); } }); setup(); } @Override publicvoidonDestroy(){ super.onDestroy(); if(stop.isEnabled()){ stop(); } } publicvoidonCompletion(MediaPlayermp){ stop(); } privatevoidplay(){ mp.start(); play.setEnabled(false); pause.setEnabled(true); stop.setEnabled(true); } privatevoidstop(){ mp.stop(); pause.setEnabled(false); stop.setEnabled(false); try{ mp.prepare(); mp.seekTo(0); play.setEnabled(true); } catch(Throwablet){ error(t); } } privatevoidpause(){ mp.pause(); play.setEnabled(true); pause.setEnabled(false); stop.setEnabled(true); } privatevoidloadClip(){ try{ mp=MediaPlayer.create(this,R.raw.test); mp.setOnCompletionListener(this); } catch(Throwablet){ error(t); } } privatevoidsetup(){ loadClip(); play.setEnabled(true); pause.setEnabled(false); stop.setEnabled(false); } privatevoiderror(Throwablet){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder .setTitle("报错啦!") .setMessage(t.toString()) .setPositiveButton("确定",null) .show(); } } /Chapter11_Media_MiniPlayer/res/layout/main.xml 代码 <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="迷你音乐播放器"/> <LinearLayout android:orientation="horizontal"android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageButton android:id="@+id/play" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/play" /> <ImageButton android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/pause" /> <ImageButton android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stop" /> </LinearLayout> </LinearLayout> /Chapter11_Media_MiniPlayer/AndroidManifest.xml 代码 <?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.amaker.test" android:versionCode="1" android:versionName="1.0"> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> <uses-sdkandroid:minSdkVersion="3"/> </manifest> 本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1081707

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册