我正在创建一个 Android 应用程序,其中使用服务和窗口管理器在所有应用程序之上显示浮动视图。我正在尝试在窗口管理器参数中添加 WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 以使我的布局能够与显示切口重叠。但这似乎不适用于我的情况。
我已经尝试过以两种方式添加它:
通过使用 XML 样式:
<style name="OverlayTheme">
<item name="android:windowLayoutInDisplayCutoutMode">
shortEdges <!-- default, shortEdges, never -->
</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并在我的布局根视图中添加了此样式。但这不起作用。
通过在我的服务中使用 JAVA 代码:
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)
它也不起作用。我不确定我是否正确应用了布局参数。请帮我找出问题所在。提前致谢。
编辑:
这是我在服务中实现气泡的方式:
在 onCreate() 方法中初始化窗口管理器和布局:
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (inflater != null) mLayout = inflater.inflate(R.layout.my_layout, null, false);
Run Code Online (Sandbox Code Playgroud)通过窗口管理器将此视图添加到窗口:
WindowManager.LayoutParams params;
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)最后通过 addView …
android android-service android-layout android-windowmanager display-cutouts
我正在开发一个项目,需要动态更改音频文件的音量。
假设我有一个名为 xyz.mp3 的音频文件(20 秒音频文件)。我需要将音量设置为:
Time Range (in Seconds) || Volume Percentage (in %)
-------------------------------------------------------------------
0 - 4 || 100
||
4 - 8 || change from 100 - 20 (dynamically)
||
8 - 12 || 20
||
12 - 16 || change from 20 - 100 (dynalically)
||
16 - 20 || 100
Run Code Online (Sandbox Code Playgroud)
现在,我知道要更改音频中特定时间的音量,我可以使用以下命令:
ffmpeg -i in.mp3 -af volume=20:enable='between(t,8,12)' out.mp3
Run Code Online (Sandbox Code Playgroud)
但是当我使用音量效果时,它不会动态改变音量。它只是直接将音量从 100 更改为 20,而不是像淡入淡出那样改变音量。
当我使用 afade 命令时,例如:
ffmpeg -i in.mp3 -af afade=t=in:ss=4:d=8,afade=t=out:st=12:d=16 out.mp3
Run Code Online (Sandbox Code Playgroud)
或者
ffmpeg -i in.mp3 -af afade=enable='between(t,4,8)':t=in:ss=4:d=4,afade=enable='between(t,12,16)':t=out:st=12:d=4 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Flutter App 中创建一个 TextField 小部件,我想在其中允许用户插入这样的文本字符串:
USER-0123456789
其中文本USER(' - ' 字符之前的所有文本)应为红色,其他应为黑色。
现在的问题是我不知道有什么方法可以做到这一点。经过一番研究,我发现我可以通过使用 RichText Widget 来使用普通的 Text Widget 来完成此操作。但是,我不知道 TextField 小部件有任何类似的小部件。请帮助我摆脱这种情况。
我想在 mp3 中添加旋转 3d 效果(Haas 效果)。我的意思是,当通过耳机收听时,音频似乎会周期性地从左到右改变其方向,反之亦然(如下所示)。为此,我在网上搜索了一下,尝试通过以下方式实现:
第 1 步:拆分音频通道:
ffmpeg -i D:\ffmpeg\Down.mp3 -map_channel 0.0.0 D:\ffmpeg\L.mp3 -map_channel 0.0.1 D:\ffmpeg\R.mp3
Run Code Online (Sandbox Code Playgroud)
词干 2:将左声道拆分为多个部分:
注意:我们只会改变左声道的速度,所以我们将左声道分成 4 秒部分。
ffmpeg -i D:\ffmpeg\L.mp3 -f segment -segment_time 4 D:\ffmpeg\Split\%03d.mp3
Run Code Online (Sandbox Code Playgroud)
第 3 步:改变每个部分的速度
现在我们改变每个部分的速度(速度),这样感觉就像声音从左到右移动,反之亦然
ffmpeg -y -i D:\ffmpeg\Split\000.mp3 -af atempo=1.0008 D:\ffmpeg\Modi\000.mp3
ffmpeg -y -i D:\ffmpeg\Split\001.mp3 -af atempo=1.0000 D:\ffmpeg\Modi\001.mp3
ffmpeg -y -i D:\ffmpeg\Split\002.mp3 -af atempo=0.9992 D:\ffmpeg\Modi\002.mp3
ffmpeg -y -i D:\ffmpeg\Split\003.mp3 -af atempo=1.0000 D:\ffmpeg\Modi\003.mp3
ffmpeg -y -i D:\ffmpeg\Split\004.mp3 -af atempo=1.0008 D:\ffmpeg\Modi\004.mp3
ffmpeg …Run Code Online (Sandbox Code Playgroud) 我想在我的应用中获取有关YouTube视频的观看次数,喜欢次数和评论数量.我认为实现它可能有一些技巧.我有一个YouTube视频的网址,想要使用该网址从youtube获取这些详细信息.
我做了一些搜索,但我只得到这样的答案"如何以编程方式上传视频",这不是我的要求.