音乐的随机播放

关于音乐播放器中随机播放的两种模式 关于播放器的随机播放的两种方式 阅读详情
刚刚测试了一下android系统下三个音乐播放器关于随机播放音乐的实现方式:QQ音乐,小米的音乐播放器,以及百度音乐。

把播放模式设定为随机播放,播放存在手机的上的音乐列表。经过测试,大概分析出了3个播放器各自随机播放的实现。

1. 小米的音乐播放器
小米音乐的随机算法:在进入一个列表的时候,一组随机数就已经生成,然后音乐播放的循序就是按随机数进行的。
比如现在有5首歌曲,开始播放的时候生成了一个5,2,1,4,3这样的随机数组,然后顺序取歌曲播放就行了,小米的随机算法一定是这样的。因为你按向左播放(也就是播放前一首歌曲的时候),就会播放上一首播放的,而不是随机抽取的一首歌。这样本来是没有问题的,但是当这5首歌曲已经随机播放完了以后,继续播放的时候的随机顺序还是5,2,1,4,3。一直这样循环下去。我作为一个用户,希望的随机播放绝不是这样的。
小米音乐的随机算法,需要占用额外的内存(歌曲数目*sizeof(int)字节),这个内存消耗是可以接受的。而百度音乐和QQ音乐是得到随机数以后直接去播放音乐,没有这个内存消耗。
2. 百度音乐(版本v2.3.0)
百度音乐的随机很简单,就是每次播放一首歌曲的时候随机生成一个小于歌曲的整数,然后播放对应的歌曲就行了。这样会有以下问题
比如现在还是5首歌曲,它的播放可能会是5,2,5,2,4,5。。。每首歌曲播放的概率是一样的,理论上当播放的次数多了以后,每首歌曲被播放的次数是相等的,但是分布不一定是均匀的。也就是用户可能随机了几次以后都在同样几首歌曲上跳跃。同样我觉得这样的随机播放也不是很好的用户体验。
3. QQ音乐(版本2.4.0.1588)
QQ音乐的随机播放和百度音乐是一样的方式。
关于什么是一个理想的音乐列表随机播放的问题,简单做了一下调研,5个人有4个人希望的随机播放方式为:小米音乐的改进版,即当第一遍把所有的5首歌曲都随机播放完了以后,再重新生成一个随机播放序列,并按新的随机序列播放。改进就是设定一个bool数组,每播放一首歌曲,把数组对应的值设定为true,并且测试bool数组是否全为true。如果全为true,就生成新的随机序列,进行播放。
android 简单的音乐播放器实现播放模式的切换 以前写过一篇简单的音乐播放器,但是这个播放器没有实现播放模式的切换,在项目中要实现两个播放模式,循环播放和随机播放,经过这两天的努力搞定了,界面比较粗糙。可以先看一下前面的简单音乐播放器,详细的就不说了,直接把代码放上去,详细的看前面的博文。 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/re 阅读详情

相关推荐

音乐播放随机算法

常见的音乐随机播放算法主要有两种:一是Shuffle算法;二是Random算法。 一 Shuffle算法 Shuffle算法和排序算法正好相反,是从有序到乱序的一个过程,俗称洗牌算法。它将播放列表中的歌曲顺序打乱,变成一个和原来歌曲顺序没有任何关系的乱序的播放列表,之后进行歌曲的播放,并支持当用户点击“上一首”时,能够回到刚刚播放的那一首歌曲。 二 Random算法 Random算法是

lme525的专栏 1450

Android手机开发课程设计之音乐播放器

音乐播放器概述与分析目前手机的音乐播放功能已经是大家比较关注的一个部分,不少在人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器,而且还具有网上听音乐功能,所以开发一款受欢迎的手机音乐播放软件是具有良好的市场和应用前景的。...

qq_44111805的博客 1万+

Shufflayer:随机播放音乐播放器(Android版)

洗牌者 随机播放音乐播放器(Android版)

简单的Android 音乐播放器实现

环境:Api26,gradle 4.4 主要功能: 1.读取本地音乐文件 2.选取音乐播放 3.随机播放 注:仅仅分析关键业务的代码,完整的项目见github 1.读取本地音乐文件并在列表中显示 直接上代码: void getAllMusic(){ Cursor cursor = this.getContentResolver().query( ...

brainhang的博客 1016

易语言定时广播系统源码,易语言生成皮肤源码,易语言MP3音乐播放

易语言MP3音乐播放器源码,MP3音乐播放器,窗口透明,初始化播放进度,初始化音量,保存列表,载入列表,打开MP3文件,取消已选择,电子时钟,秒数转换,取短文件名,递归寻找MP3,取MP3歌曲名与时间,删除无用字节,设置广播状态,取消广播状态,保存日志文件,添加按钮提示,读

易语言随机取标题

易语言随机取标题源码,随机取标题

音乐随机播放算法

之前就一直好奇手机QQ音乐中的随机播放是怎么实现的。随机过程很好实现,主要是上一曲以及下一曲的选择上。今天看博客,恰巧看到了有一篇简单介绍了常见的音乐随机播放算法。下面根据博主ACE1985的介绍再结合自己的一点感受做下总结。 常见的音乐随机播放算法主要有两种:一是Shuffle算法;二是Random算法。 一 Shuffle算法 Shuffle算法和排序算法正好相反,是从有序到乱序的一个过

cyx576921581的专栏 2968

RK3568平台 麦克风PDM接口录音_rk pdm配置

在RK平台,Android的Audio HAL层中一般会都会有导出录音播放数据的功能。如播放的,是会直接送到声卡中的,对于播放出现问题的情况,可以从分析导出的音频数据是否正常,可以基本知道,是在应用、解码出现的问题,还是送到声卡过程中出现问题。当点开app进行录音的时候会调用到static int start_input_stream(struct stream_in *in)。音频在PDM接口输入,不经过编解码芯片直接到RK主芯片,RK主芯片自带PCM编解码功能。以下软件能播放保存下来的pdm文件。

2401_83817122的博客 2343

单片机c语言随机播放音乐,单片机按键音乐随机播放程序

#includesbitbuzzer = P2^5; // 声明输出端unsigned charkeys,i; // 声明按钮及播放谱变量unsigned chartone_H, tone_L; // 声明计时量变量#define uint unsigned int#define uchar unsigned charuchar timeh,timel;//用于存放定时器的...

weixin_29668721的博客 1万+

C++动态规划详解

动态规划思想 一、动态规划概念: 动态规划(dp)是研究多步决策过程最优化问题的一种数学方法。在动态规划中,为了寻找一个问题的最优解(即最优决策过程),将整个问题划分成若干个相应的阶段,并在每个阶段都根据先前所作出的决策作出当前阶段最优决策,进而得出整个问题的最优解。即记住已知问题的答案,在已知的答案的基础上解决未知的问题。 在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后

weixin_51951103的博客 2万+

Windows 24H2下eNSP AR_40启动失败的终极修复指南

本文针对Windows 11 24H2更新后eNSP AR_40路由器启动失败的问题,提供了终极修复方案。核心在于解决系统强制虚拟化安全(VBS/Hyper-V)与老版模拟软件的兼容性冲突。指南详细介绍了安装关键系统更新KB5053656、精细调整Windows虚拟化功能以及后续排错步骤,帮助用户在24H2系统上稳定运行eNSP进行网络实验。

weixin_29233333的博客 507

随机播放音乐的代码

下面是随机播放音乐的代码var nummidi = 7 day = new Date() seed = day.getTime() ran = parseInt(((seed - (parseInt(seed/1000,10) * 1000))/10)/100*nummidi + 1,10) if (ran == (1)) midi=("http://ftp.cumt.edu.cn/cumto

风 之 蓝色理想 4399

高德地图 搜索和点击定位

高德地图vue

weixin_45474673的博客 1943

python如何随机播放音乐_Python随机播放音乐的代码

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。就是找到硬盘中所有的MP3文件和wma文件,再随机打开其中的一个。import os,randomdisk=['D','E','F','G','H']def search_file(filename,search_path,pathsep=os.pathsep):for path in sea...

weixin_42410317的博客 449

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1172

Ubuntu 20.04下Cube-Studio云原生平台单机部署全攻略(附避坑指南)

本文详细介绍了在Ubuntu 20.04系统上单机部署Cube-Studio云原生平台的完整流程,包括环境准备、Docker配置、Rancher与Kubernetes集群部署以及Cube-Studio核心组件安装。特别提供了官方文档未涵盖的实战技巧和常见问题解决方案,帮助开发者高效完成部署并避免常见陷阱。

weixin_29313423的博客 464

php 随机播放音乐,听音乐时随机播放真的是随机的吗?

听音乐时随机播放真的是随机的吗?一只学霸(ID:bajie203)说到随机播放前段时间我不是为了你们在听禁曲嘛好家伙接连几天睡觉的时候听歌都给我放禁曲你们根本不懂那是种什么感觉我差点当场去世当时我就觉得奇怪为啥老随机到这玩意经过我的一番研究今天就给你们好好讲讲歌单随机播放的秘密实际上我们所说的随机播放分为真随机(random)和伪随机(shuffle)两种真随机简单来说就是你选择随机播放某个歌单时...

weixin_42353996的博客 358

《Python全栈系列教程》专栏介绍及文章汇总

《Python全栈系列教程》专栏介绍及文章汇总

孤寒者的博客 71万+

极简随机音乐播放器

极简随机音乐播放器说明效果部分代码 说明 主要功能: 1.音乐的在线播放 2.连接到了网易云音乐引擎 软件架构: 播放器使用PyQt5编写 音乐接口来自于UomgAPI(https://api.uomg.com/), 连接到了网易云音乐引擎 主要技术路线: 通过音乐引擎随机获取音乐 采用PyQt5对音乐进行播放 通过窗体对音乐播放进行控制 主体框架: python PyQt5 requests 工作: 1.python窗体开发、样式调整 2.窗体音乐控制: 播放、下一首、进度条展示等 3.调用音乐接口 ,

Java开发工程师,专注微服务、分布式系统,部署运维,分享实战经验和源码解析。 1027

Android 14 (AOSP) 源码架构深度解析与开发者指南

Android14源码的仓库指南信息

保持专注,保持热爱 1186

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

随机音乐播放的算法

在浏览Spotify官方博客时被一篇介绍音乐随机播放算法的博客吸引,随后对这个问题小小研究了一下。 随机播放音乐,这个功能太普通以至于以前从未考虑过其背后实现逻辑。 Random还是shuffle 我们经常使用的随机播放功能,在外国同行口中并不是叫Random播放,而是叫Shuffle,洗牌的意思。 为什么不是Random?来看两个例子。 在Spotify成立之初,他们使用一种叫「Fis

zhuhengv的博客 9984

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python如何随机播放音乐_Python随机播放音乐的代码详解

就是找到硬盘中所有的MP3文件和wma文件,再随机打开其中的一个。import os,randomdisk=['D','E','F','G','H']def search_file(filename,search_path,pathsep=os.pathsep):for path in search_path.split(pathsep):candidate = os.path.join(path...

weixin_39987926的博客 389

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android | 一个随机播放网络音乐的音乐播放器

前言 是这样,前几天接触到一个可以随机获取网易云音乐及其热评的 API(关于该API),于是乎就想着要做一个小 demo 来练练手吧! 目前的效果就是上面那个样子。 我目前有打算把这个项目长期维护下去,后面会加入更多功能,例如收藏、下载等。 GitHub 地址 需求 需求很简单,就是通过 API 随机获取一首在线音乐及其某一条热评,实现音乐的后台播放、暂停、随机切换,显...

M_zoneL的博客 1955

随机播放音乐 伪随机

【代码】随机播放音乐 伪随机。

xiaoerbuyu1233的博客 992
上一篇: 《代码大全》和《重构》读后感
下一篇: 如何写出好代码
MakeCodeClear
博客等级 码龄14年 0粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值