安卓下面如何用elisp来调整音量和屏幕亮度和屏幕方向

我目前是用adb命令

(defun my-raise-volume ()
 (interactive)
 (start-process "adb" nil "adb" "shell" "media" "volume" "--stream 3" "--set 1"))

(defun my-increase-brightness ()
 (interactive)
 (start-process "adb" nil "adb" "shell" "settings" "put" "system" "screen_brightness 0"))

但是这样只能调整到固定值,不能在当前音量或者亮度的基础上递增递减,请问我要如何做才能实现在当前音量和亮度的值的基础上增减

有两个相关的命令

adb shell media volume --stream 3 --get     ## 获取当前音量信息,输出的最后一行类似"volume is 1 in range [0...30]"
adb shell “dumpsys power | grep mScreenBrightnessSetting”     ## 获取当前屏幕亮度类似"mScreenBrightnessSetting=0"

关于屏幕方向,是使用在w3m里面,当url地址是.mp4的时候,调用mpv播放,希望在播放之前旋转90度,让后重新设置emacs frame尺寸之后再开始播放。

如果用mpv自己的旋转参数,会出现严重掉帧,估计是只能cpu渲染的问题吧,太麻烦了

目前的代码如下:

(defun my-play-video ()
 (interactive) 
 (let ((url (w3m-anchor)))     ## 可能要判断当前链接后缀名,如果是.mp4就继续执行,不然就执行默认操作
 (cond (
 ....
 (start-process "adb" "shell" "settings" "put" "system" "user_rotation 1"     ## 旋转90度
 (when window-system (set-frame-size (selected-frame) aa bb))                 ## 设置emacs尺寸
  ...
 (start-process "mpv" nil "mpv" url)))))                                      ## 开始播放

另外希望更进一步,如果播放完视频之后5秒之后能够自动执行如下操作:

 (start-process "adb" "shell" "settings" "put" "system" "user_rotation 0"     ## 恢复默认方向
 (when window-system (set-frame-size (selected-frame) cc dd))                 ## 恢复默认尺寸

如果5秒内mpv又打开就不用执行上面的恢复默认操作。

非常感谢指点,我刚开始接触,只会这一点点。

1 个赞

此话题已在最后回复的 730 天后被自动关闭。不再允许新回复。