首页 文章 精选 留言 我的

精选列表

搜索[声音定制],共10001篇文章
优秀的个人博客,低调大师

从零做播放器,画面和声音是怎么对上的

视频侧按帧率刷,音频侧的节拍归设备,两条链各自带着自己的时间戳往前走,把它们放到同一条时间线上是这一篇要解决的事。做法是给每条轨配一个时钟,把「现在播到哪」算成一个随时能读的值;再挑一条当主时钟,另一条照着它调。调的办法两不一样:视频改的是等待时间和丢帧,音频改的是这一次送出去多少数据。这篇把这一套讲完:时钟里存了什么、主时钟怎么定、偏差分几档处理、哪几种情况干脆关掉同步,以及积压太多时怎么自动提速。

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

从零做播放器,声音是怎么送到设备上的

视频那条链把帧画到屏幕上就算走完了,音频这条链还差最后一跳:数据得交给设备,由设备按自己的节奏放出去。这一跳带来的东西和前一条链几乎处处不同——节奏的源头从播放器挪到了设备那头,平台之间的差别也从「渲染器怎么建」换成了「数据怎么递、递之前要改成什么格式」。这篇把这一跳讲完:两条线程与两级队列怎么排、设备层抽象出哪几个动作、四条平台实现各自怎么交数据、交出去之前要过哪几道格式关,以及「现在播到哪」这个数是从哪里推出来的。

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

《Spring AI 2.0实战》第5招 模型也能看图听声音

“故障截图已经发你了,怎么还没处理?”老李在客服群里经常看到这句话。图片很清楚,错误码、时间、机器序列号都在,但工单系统里依然只有用户手打的一行“系统登不上”。截图只是附件,系统没有把图片里的信息变成可检索、可分类、可路由的内容。另一边,语音报障、拍照上传、巡检照片越来越多,研发团队却还在把多模态当玩具:演示里让模型认一张猫,现场却不敢让真实接口接收图片。

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

两会声音汇总:各大代表热议5G发展

5G作为新一代通信技术,如今正像水、电一样影响着人们的生产与生活。而自2019年正式启动商用以来,我国5G发展也是交出了一份高水平答卷。目前,我国5G基站已建成超过71万座,5G连接用户超过2亿人次,各地5G网络建设、应用探索迈上新台阶,为十四五发展打下良好基础。 展望十四五,在数字中国加速建设下,5G发展无疑是重中之重。5G作为一个关键点,将带动千万面,根据中国信通院预计,2025年5G将直接带动高达10万亿元的经济产出,带给人们无限畅想生活,未来潜力无限。基于此,在今年两会期间,5G也理所当然的成为了热议话题。 那么,具体代表们都是如何热议5G的呢?本网搜集整理了部分观点,以供大家参考: 5G助力安全生产 中国移动副总经理赵大春认为,我国安全生产形势复杂严峻,煤矿、非煤矿山、危化等重点行业领域的高风险特征及事故隐患多发,而5G有望解决这一问题,助力安全生产。其建议,加强5G�安全生产政策牵引,突破行业应用瓶颈,加快5G在安全生产领域的落地与深度应用,推动5G与安全生产融合发展。 5G促进医疗建设 广东省卫健委主任段宇飞认为,随着5G等新技术的涌现,“互联网�医疗健康”有了广阔的发展空间,“5G�医疗健康”正成为助推健康中国建设的重要一环。其建议,快制定“5G�医疗健康”发展规划;扩大5G等基础设施的覆盖面;打造5G+医疗行业标杆;促进“5G�医疗健康”规模化发展;加强对“5G�医疗健康”的分类指导。 5G补足教育短板 新东方教育科技集团董事长俞敏洪认为,5G能缩短城乡教育差距,通过将优质教育资源传送到偏远地区学校,能缓解优质教师资源不足压力,让乡村孩子享受优质教育。其建议,可先在农村的中小学附近建设5G微基站,布局校园信息化联网系统。同时拿出一部分资金用于偏远地区学校的5G建设。 5G革新传统文化 江苏省演艺集团总经理柯军认为,以戏曲为代表的传统文化当前面临“四难困境”:抢救难、演出难、宣传难、传承难。如何让戏曲更快更好地“触网”,让更多人尤其是年轻人喜欢?抓住5G这一重大技术风口是关键。其建议,打造一支推动戏曲数字化的“国家队”,组建国家级5G数字戏曲实验室。 5G推动乡村振兴 中国联通产品中心总经理张云勇认为,数字乡村是乡村振兴的重要战略方向,也是发展数字经济的重要组成部分,5G作为数字经济发展的基础设施,在乡村振兴中也十分重要。其建议,将数字乡村移动通信基础设施和700MHz频谱资源定位于覆盖包括乡村地区人口在内的全体移动通信用户的基础公共资源;探索研究开发更低频通信用于数字乡村5G发展。

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

Magisk 24.3 发布,定制 Android 的开源软件

Magisk 是一套开放源代码的 Android(5.0 以上版本)自定义工具套组,内置了 Magisk Manager(图形化管理界面)、Root、启动脚本、SElinux 补丁和启动时认证 /dm-verity/ 强制加密移除功能。Magisk 同时提供了在无需修改系统文件的情况下更改 /system 或 /vendor 分区内容的接口,利用与 Xposed 类似的模块系统,开发者可以对系统进行修改或对所安装的软件功能进行修改等。 Magisk 24.3 发布,更新内容如下: [General] 停止使用 getrandom 系统调用 [Zygisk] 更新 API 至 v3,为 AppSpecializeArgs 添加新字段 [App] 改进应用重新打包的安装工作流程 [MagiskSU] 修复缓冲区溢出问题 [MagiskSU] 修正所有者管理的多用户超级用户设置 [MagiskSU] 修正使用 su -c <cmd> 时的命令记录 [MagiskSU] 防止 su 请求无限期阻塞 [MagiskBoot] 修复 lz4_lg 压缩 [DenyList] 允许定位以系统 UID 身份运行的进程 [Zygisk] 改进 Zygisk 加载机制 [Zygisk] 修复应用程序 UID 跟踪 [Zygisk] 修复在 zygote 中设置的不正确的 umask [App] 修复 BusyBox 执行测试 [App] 改进存根加载机制 [App] 主要的应用升级流程改进 [General] 改进命令行错误处理和信息传递 更多详情可查看:https://github.com/topjohnwu/Magisk/releases

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

vlayout 1.2.31 发布,阿里 LayoutManager 定制化布局

vlayout 1.2.31 发布了,vlayout(VirtualLayout)是阿里开源的一个针对 RecyclerView 的 LayoutManager 扩展,主要提供一整套布局方案和布局间的组件复用。 此版本更新内容如下: 修复粘性监听器(sticky listener)在无效状态下传递 null 的问题 项目更改不应清除布局信息,已修复 修复粘性监听器回调不正确的问题 避免使用可能导致类强制转换异常的 arrayMap 更新说明及下载地址

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

Java内存缓存-通过Map定制简单缓存

缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前检索或计算的数据。 为什么要用缓存 场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。 在集群环境下,常用的分布式缓存有Redis、Memcached等。但在某些业务场景上,可能不需要去搭建一套复杂的分布式缓存系统,在单机环境下,通常是会希望使用内部的缓存(LocalCache)。 方案 基于JSR107规范自研 基于ConcurrentHashMap实现数据缓存 JSR107规范目标 为应用程序提供缓存Java对象的功能。 定义了一套通用的缓存概念和工具。 最小化开发人员使用缓存的学习成本。 最大化应用程序在使用不同缓存实现之间的可移植性。 支持进程内和分布式的缓存实现。 JSR107规范核心概念 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。 CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。 CacheManager定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于- CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。 Cache是一个类似Map的数据结构并临时存储以Key为索引的值。一个Cache仅被一个CacheManager所拥有。 Entry是一个存储在Cache中的key-value对。 每一个存储在Cache中的条目有一个定义的有效期,即Expiry Duration。一旦超过这个时间,条目为过期的状态。一旦过期,条目将不可访问、更新和删除。缓存有效期可以通过ExpiryPolicy设置。 小例子 使用Map来实现一个简单的缓存功能 MapCacheDemo.java package me.xueyao.cache.java; import java.lang.ref.SoftReference; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * @author simon * 用map实现一个简单的缓存功能 */ public class MapCacheDemo { /** * 使用 ConcurrentHashMap,线程安全的要求。 * 我使用SoftReference <Object> 作为映射值,因为软引用可以保证在抛出OutOfMemory之前,如果缺少内存,将删除引用的对象。 * 在构造函数中,我创建了一个守护程序线程,每5秒扫描一次并清理过期的对象。 */ private static final int CLEAN_UP_PERIOD_IN_SEC = 5; private final ConcurrentHashMap<String, SoftReference<CacheObject>> cache = new ConcurrentHashMap<>(); public MapCacheDemo() { Thread cleanerThread = new Thread(() -> { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(CLEAN_UP_PERIOD_IN_SEC * 1000); cache.entrySet().removeIf(entry -> Optional.ofNullable(entry.getValue()) .map(SoftReference::get) .map(CacheObject::isExpired) .orElse(false)); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); cleanerThread.setDaemon(true); cleanerThread.start(); } public void add(String key, Object value, long periodInMillis) { if (key == null) { return; } if (value == null) { cache.remove(key); } else { long expiryTime = System.currentTimeMillis() + periodInMillis; cache.put(key, new SoftReference<>(new CacheObject(value, expiryTime))); } } public void remove(String key) { cache.remove(key); } public Object get(String key) { return Optional.ofNullable(cache.get(key)).map(SoftReference::get).filter(cacheObject -> !cacheObject.isExpired()).map(CacheObject::getValue).orElse(null); } public void clear() { cache.clear(); } public long size() { return cache.entrySet().stream().filter(entry -> Optional.ofNullable(entry.getValue()).map(SoftReference::get).map(cacheObject -> !cacheObject.isExpired()).orElse(false)).count(); } /** * 缓存对象value */ private static class CacheObject { private Object value; private long expiryTime; private CacheObject(Object value, long expiryTime) { this.value = value; this.expiryTime = expiryTime; } boolean isExpired() { return System.currentTimeMillis() > expiryTime; } public Object getValue() { return value; } public void setValue(Object value) { this.value = value; } } } 代码测试类MapCacheDemoTests.java package me.xueyao.cache.java; public class MapCacheDemoTests { public static void main(String[] args) throws InterruptedException { MapCacheDemo mapCacheDemo = new MapCacheDemo(); mapCacheDemo.add("uid_10001", "{1}", 5 * 1000); mapCacheDemo.add("uid_10002", "{2}", 5 * 1000); mapCacheDemo.add("uid_10003", "{3}", 5 * 1000); System.out.println("从缓存中取出值:" + mapCacheDemo.get("uid_10001")); Thread.sleep(5000L); System.out.println("5秒钟过后"); System.out.println("从缓存中取出值:" + mapCacheDemo.get("uid_10001")); // 5秒后数据自动清除了~ } }

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

电商APP定制开发要注意什么?

开发一款电商App软件有什么需要注意的?首先我们得明白二个问题 第一个问题:App为什么这么热,App开发工程师大概的薪资又是多少? 【小编】:APP的创富神话远远超越当年的网站,不少APP一夜成名。中国市场有个特色,什么生意好做,大家就开始扎堆。 应该说,国内APP最火的时候应该是在2011年底到2013年初。那个时候,不少「土豪」们争相投资各种APP或APP开发团队,那个时候,好几个大老板都有意向投资入股甚至收买我们公司,也有投资项目的,我们也就是在那个时候,加入了一个游戏化社交软件的合作。 这是资本市场的背景,另外,那段时间也是苹果手机风靡全球的时候,因此开发苹果版APP是最热门的需求,因此也催生了一批IOS开发工程师。大学裡基本没有教授这门技能,也鲜有相关的训练机构,大部分的工程师都是靠自学成长。但是苹果体系的封闭性致使了学习IOS开发的本钱比安卓的要高许多,至少手头要有一台能装有苹果体系的电脑,还要有一个苹果手机或平板做测试,申请一个开发者账号也需要好几百块,这些加起来都将近一万多,不是一般人能接受得起的,因此,懂IOS开发的人也就少了。 在这种求大于供的情况下,IOS开发工程师的薪酬像泡泡一样越吹越大,最疯狂的时候,一个稍微懂点IOS的程序员就能要个7、8千的月薪,编出来的软件基本用不了,由于经验完全不足。一方面资本的推高,另一方开发本钱的高企,直接致使了APP开发的费用水涨船高。安卓APP由于本身採用的是JAVA语言,又是开放体系,许多学校和训练机构都相继开设了课程,大量的流水线式的产出安卓开发工程师,但这并不致使开发本钱的降低,反而,由于三星等国内外手机厂家对安卓体系的大力改造和开展,安卓体系的使用场景越来越广泛,市场需求旺盛,所以工程师的薪酬并不比IOS的低许多。 也就是说,1是中国人做事喜欢扎堆,见什么火就跟什么,催生市场需求量很大;2是App开发基本无材料本钱,主要还是来自人力本钱,那第二个问题随之而来:实际开发一个App大概要多少钱呢? 【小编】:假如真正想做一款好的APP,那就得考虑IOS和Android两个平台各做一个APP,同时挑选一个好的开发团队,这个很重要,由于差的团队做出来的产品基本会有许多疑问。一个好的APP项目至少需要一个项目经理、一个UI设计师,一个IOS开发工程师和一个安卓开发工程师,另外假如需要后台数据交互的,还需要一个后台开发工程师,规范的话还需要一个测试工程师。这些人员的月薪加上来已经超越4、5万人民币了,对于简单的APP,设计、开发加上测试的时间大概需要6到8周,複杂一些的需要8到12周。这么算下来,一个简单APP的开发费用就需要10~15万,稍微複杂些的需要15~20万,这裡包括两个版本的APP。当然这个规模不是很确切的,有些难度较大的或者前后台複杂程度高的体系,价格也会更高。特别是做游戏的,本钱也许会是这个预算的好几倍。 有没有人觉得你们开发的价格实在太高了,就手机里一个破软件,需要这么多钱吗? 不少行外人不理解,不就是在手机上做个相似网站的东西,怎么也许需要十几万呢。对这些有疑问的人,我都会把上面的背景通知他,这是市场的结果,不是忽悠,也不是垄断。我们也碰到过这么的人,愣是不相信,后来他们自个组建团队开发,结果费用比当初的报价还多出两三倍。 Q:对于一个企业来说,是否有必要开发App呢? A:答案是肯定的,由于移动互联网的开展已经进入普及期。但做哪一类的APP呢?以小编多年的经验,原生态的APP,是工具类和平台类的首选;而对于普通的展示类或服务类,则能够挑选Web APP来实现。原生态APP的好处是能够实现更多的基于手机的功能,比如GPS定位,手机拍照,手机的重力感应等,并且他能够自个掌握数据和用户;但缺点是这类APP开发后推行是一个难点。因此用原生态APP作为展示推行品牌或产品的目的就变得不现实了。它只能作为工具类或平台类的挑选。 举个例子,假如企业想开发一套简单的销售管理体系,方便业务人员和管理人员对销售工作进行管理,这归于工具类,主张开发原生态APP。假如企业只是想把自个的产品展示出来或实现网上下单,那么主张用Web APP来实现就够了。 说了这么多,相信大家也对APP开发有了一定的了解。做APP已经是一个趋势,主要在于做这个APP的出发点是什么,想好了再挑选一个合适的方式,这么才能做到事半功倍。 想开发一个好的App本钱确实不低,不是一切企业都能够接受得起的。相对于App开发的本钱来说,其推行和运营本钱会更高,也有花费千万的推行费,依然砸不出可观的装置量的。也会有装置量还能够,但是活跃用户很低的,这就是产品运营上的缺失。 还有一个是App的盈利疑问,目前市面上绝大多数的App都没有很好的盈利模式,连之前资本热捧的App市场现在也很萧条。所以,在决定开发App之前一定要想好是否真的需要,还是说用来装B之用。并不是说别人有的你也一定要有,别人有癌症,你也要有吗?也并不是说别人能够做到的,你或你的团队一定也能做到,别人能够把公司带上纳斯达克,你能够吗?跟风也要适度,先要想好自个真正的核心竞争力是什么,是否真的需要这么个东西。以上就是开发一款电商App所需要注意的问题,开发一款APP真正目的是为了体现他的价值。 编辑:飞进科技-super 丹

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

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

用户登录
用户注册