Delphi 的 Android 音量控制
任何在 Android 上处理过某些事情的人都知道,管理音量非常容易,甚至几乎 100% 的设备都有物理按钮。
但是在我的上一个项目中,我很惊讶如果用户的多媒体音量低,我应该向用户发出警报,因为有问题的应用程序使用了 Text ToSpeech 系统。
做了一些研究,我遇到了 Android AudioManager类,它负责所有的音频处理。它的描述说明了一切:“AudioManager 提供对音量和铃声模式控制的访问。”
在该类中,有一些变量对于 Delphi 的 Android 卷管理非常有用:
int STREAM_ALARM
//Se utiliza para identificar el volumen de audio de las alarmas.
int STREAM_DTMF
//Se utiliza para identificar el volumen de audio para tonos DTMF
int STREAM_MUSIC
//Se utiliza para identificar el volumen de audio para la reproducción de música.
int STREAM_NOTIFICATION
//Se usa para identificar el volumen de audio para notificaciones.
int STREAM_RING
//Se usa para identificar el volumen de audio para el timbre del teléfono
int STREAM_SYSTEM
//Se utiliza para identificar el volumen de audio de los sonidos del sistema.
int STREAM_VOICE_CALL
//Se utiliza para identificar el volumen de audio de las llamadas telefónicas.
如果我们继续浏览类,我们会发现一些方法,我们可以从中获取不同卷的值并设置它们。
{Devuelve el valor de volumen máximo de una secuencia en particular}
int getStreamMaxVolume(int streamType)
{Devuelve el valor de volumen actual de una secuencia en particular}
int getStreamVolume(int streamType)
{Establece el valor de volumen para una secuencia en particular}
public void setStreamVolume (int streamType, int index, int flags)
刚刚看到上述内容,我们知道我们可以在任何 Android 设备上处理音量问题。但所见的都是 Java,Android 中的原生类,
我们如何处理来自 Delphi 的 Android 卷?
在 Delphi 中,我们可以通过“桥文件”访问 java 类。它们是一系列用 Delphi 编写的文件,它们在 Android 的 java 类和我们在 Delphi 中的应用程序之间架起了一座桥梁。所有这些 Bridge 文件都位于我们安装的 Path source \ rtl \ android中。
在这个文件夹中,为了管理 Android 中的卷,我们找到了Androidapi.JNI.Media.pas单元,我们只在我们的项目中使用该单元,我们已经拥有上述功能。
从这里开始,用法在您的想象中运行。
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.087589025497437 seconds