现在使用线性马达的手机越来越多,那么有没有可能实现使用线性马达来播放音乐?至少硬件层面上肯定是能实现的,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 手机就可以在系统设置中选择不同的震动模式,每个模式都是一段简单的旋律,所以,从软件层面上应当是可以实现这个目的的。
我也曾经尝试搜寻三星的实现方法,奈何技艺不精,没有搜寻到相关的代码或说明。
1
equationl OP 哈哈,看来这个想法比较没意思呢,v 友们都没有兴趣
|
2
enjoyCoding 2020-02-24 18:07:56 +08:00
也可能是 v 友们也不会乐理知识
|
3
equationl OP @enjoyCoding 哈哈,可能会乐理的没看见,多顶顶,万一大佬看见了呢
|
4
vindurriel 2020-02-25 06:23:14 +08:00 via iPhone
搞不定的 频率和振幅是正交的特征 不能互相表示 所谓 timing 是振幅关于时间的函数
|
5
equationl OP @vindurriel 对,难就难在谷歌没有给控制频率的方法,只给了控制震动时间和振幅的方法。
|
6
fox0001 206 天前
应该播放(震动) midi 格式
|