有没有可能在软件层面实现安卓手机使用线性马达播放音乐?

2020-02-18 20:28:19 +08:00
 equationl

现在使用线性马达的手机越来越多,那么有没有可能实现使用线性马达来播放音乐?至少硬件层面上肯定是能实现的,b 站就有将马达拆下后连接播放器播放音乐的视频。 那么,如果想要从软件层面上实现有无可能? 查阅了安卓的 api,发现安卓对于震动的操作,主要有:

static VibrationEffect createOneShot(long milliseconds, int amplitude)
Create a one shot vibration.

static VibrationEffect	createPredefined(int effectId)
Create a predefined vibration effect.

static VibrationEffect	createWaveform(long[] timings, int[] amplitudes, int repeat)
Create a waveform vibration.

static VibrationEffect	createWaveform(long[] timings, int repeat)
Create a waveform vibration.

int	describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

可操作性最强的是:

createWaveform(long[] timings, int[] amplitudes, int repeat)

这个方法可以同时控制震动的波形数据( timings )和震动的振幅( amplitudes ),但是,问题在于波形数据( timings )指定的是持续震动的时间,而非控制震动速度。

但是,个人认为可能可以通过调节 timings 和 amplitudes 来实现震动出不同的音调,奈何本人乐理知识和物理知识都极差,完全不知道该怎么弄。

另,我现在所使用的三星 s10 手机就可以在系统设置中选择不同的震动模式,每个模式都是一段简单的旋律,所以,从软件层面上应当是可以实现这个目的的。

我也曾经尝试搜寻三星的实现方法,奈何技艺不精,没有搜寻到相关的代码或说明。

3308 次点击
所在节点    分享创造
6 条回复
equationl
2020-02-24 15:59:23 +08:00
哈哈,看来这个想法比较没意思呢,v 友们都没有兴趣
enjoyCoding
2020-02-24 18:07:56 +08:00
也可能是 v 友们也不会乐理知识
equationl
2020-02-24 20:56:47 +08:00
@enjoyCoding 哈哈,可能会乐理的没看见,多顶顶,万一大佬看见了呢
vindurriel
2020-02-25 06:23:14 +08:00
搞不定的 频率和振幅是正交的特征 不能互相表示 所谓 timing 是振幅关于时间的函数
equationl
2020-02-25 23:38:21 +08:00
@vindurriel 对,难就难在谷歌没有给控制频率的方法,只给了控制震动时间和振幅的方法。
fox0001
62 天前
应该播放(震动) midi 格式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/645640

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX