V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
equationl
V2EX  ›  分享创造

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

  •  1
     
  •   equationl · 2020-02-18 20:28:19 +08:00 · 3249 次点击
    这是一个创建于 1521 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在使用线性马达的手机越来越多,那么有没有可能实现使用线性马达来播放音乐?至少硬件层面上肯定是能实现的,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 手机就可以在系统设置中选择不同的震动模式,每个模式都是一段简单的旋律,所以,从软件层面上应当是可以实现这个目的的。

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

    5 条回复    2020-02-25 23:38:21 +08:00
    equationl
        1
    equationl  
    OP
       2020-02-24 15:59:23 +08:00 via Android
    哈哈,看来这个想法比较没意思呢,v 友们都没有兴趣
    enjoyCoding
        2
    enjoyCoding  
       2020-02-24 18:07:56 +08:00
    也可能是 v 友们也不会乐理知识
    equationl
        3
    equationl  
    OP
       2020-02-24 20:56:47 +08:00 via Android
    @enjoyCoding 哈哈,可能会乐理的没看见,多顶顶,万一大佬看见了呢
    vindurriel
        4
    vindurriel  
       2020-02-25 06:23:14 +08:00 via iPhone
    搞不定的 频率和振幅是正交的特征 不能互相表示 所谓 timing 是振幅关于时间的函数
    equationl
        5
    equationl  
    OP
       2020-02-25 23:38:21 +08:00 via Android
    @vindurriel 对,难就难在谷歌没有给控制频率的方法,只给了控制震动时间和振幅的方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5491 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:21 · PVG 11:21 · LAX 20:21 · JFK 23:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.