Skip to main content

多媒体

# 包
from ascript.android import media

音视频播放,录制,邮件发送 等操作

方法

音量调节

调节音量大小(1-100)

  • 函数
media.volume(percent:int,type:int =3)
  • 参数
参数类型必须备注
percentint音量大小 1-100之间
typeint音量类型,默认为3,见下表

什么是音量类型?

在Android 系统中,包含了很多音量类型,如 音乐,系统通知,闹钟,电话等等.不同的类型,都有自己的音量

该参数来自 android.media.AudioManager

音量类型备注
音乐回放即媒体音量3
窗口顶部状态栏Notification5
警告4
铃声2
系统1
通话0
  • 示例
# 设置音乐媒体音量 为80%
# 导包
from ascript.android import media
media.volume(80)
# 设置通话音量为 60%
# 导包
from ascript.android import media
media.volume(60,0)

音量获取

获取音量大小

  • 函数
media.get_volume(type:int =3)
  • 参数
参数类型必须备注
typeint音量类型,默认为3,见下表

什么是音量类型?

在Android 系统中,包含了很多音量类型,如 音乐,系统通知,闹钟,电话等等.不同的类型,都有自己的音量

该参数来自 android.media.AudioManager

音量类型备注
音乐回放即媒体音量3
窗口顶部状态栏Notification5
警告4
铃声2
系统1
通话0
  • 示例
# 获取媒体音量 音量大小
# 导包
from ascript.android import media
num = media.get_volume(3)
print(num)

语音朗读

将文本用语音朗读出来

  • 函数
media.talk(msg:str)
部分设备不支持

部分设备缺少语音库,因此不支持,如(雷电模拟器)

  • 参数
参数类型必须备注
textstring要朗读的文本
  • 示例
# 文本转语音朗读出来
#导包
from ascript.android import media
media.talk('自在老师你好')

播放音频

播放音频文件

  • 函数
media.play(path:str,callback=None)
  • 参数
参数类型必须备注
pathstring必填要播放的音频文件
callbackclass可选一个回调对象
回调对象格式见案例
  • 示例
# 播放一个音频文件
# 导包
from ascript.android import media
from ascript.android.system import R
media.play(R.res("/media/aodi.wav"))

# 播放音频文件 回调案例
from ascript.android import media
from ascript.android.system import R

class listener:
def prepare(self,player):
# 获取音频时长
dur = player.getDuration()
print(dur)
print('准备完毕')
# 带监听器,我们需要调用start方法
player.start()

def completion(self):
print('播放完毕')

# 播放一个音频
media.play(R.res("/media/aodi.wav"),listener())

停止音频

当开始播放 时候,我们可以通过 callback拿到 player对象,从而停止音频

player.stop()
  • 示例
# 播放音频文件开始后,停止音频
from ascript.android import media
from ascript.android.system import R
import time

class listener:
def prepare(self,player):
# 获取音频时长
dur = player.getDuration()
print(dur)
print('准备完毕')
# 带监听器,我们需要调用start方法
player.start()
time.sleep(1)
# 等待1秒后,立刻停止音频播放
player.stop()

def completion(self):
print('播放完毕')

# 播放一个音频
media.play(R.res("/media/bili.WAV"),listener())

print("123")

倍速播放

倍速播放,需要通过player(Android MediaPlayer) 对象,获取param,并设置速度

  • 示例
# 倍速播放音频文件
from ascript.android import media
from ascript.android.system import R
import time

class listener:
def prepare(self,player):
# 获取音频时长
dur = player.getDuration()
print(dur)
# 更改播放速度
playparam = player.getPlaybackParams()
playparam.setSpeed(1.0) #2倍速
player.setPlaybackParams(playparam)
print('准备完毕')
# 带监听器,我们需要调用start方法
player.start()

def completion(self):
print('播放完毕')

# 播放一个音频
media.play(R.res("/media/bili.WAV"),listener())

print("123")

获取录音对象

获取录制音频对象

  • 函数
media.recode(path:str,time=None):
  • 参数
参数类型必须备注
pathstring必填录制音频的文件放置路径,如果文件不存在,会自动创建
timeclass可选录制音频的时长,如果不填写.则直到stop调用后才停止
  • 返回值

该方法会返回一个 MediaRecoder java对象.

录音对象(MediaRecoder)

我们可以调用该对象的方法,控制开始录音,结束录音,设置录音时长,设置录音文件最大长度 等..

下面是该对象的常用方法:

常用方法备注
prepare()在设置好所有参数后,调用该方法.
start()开始录制音频
stop()结束录制音频

更多方法请参阅 android.media.MediaRecorder 使用相关文档.

# 案例: 录制音频,并在3秒后调用stop停止
from ascript.android import media
import time
m = media.recode("/sdcard/1.acc")

# 开始录音
m.start();

# 睡眠3秒后 停止录音
time.sleep(3)
m.stop()

设备震动

设备震动一段时间,单位毫秒

  • 函数
media.vibrate(time:int=200):
参数类型必须备注
timestring必填震动的时长,单位毫秒 默认:200毫秒
# 手机震动2秒
# 导包
from ascript.android import media
media.vibrate(2000)

图片文件存储相册并更新

将图片文件存储至相册中,并通知系统更新相册.

用于一些上传图片文件的场景.

  • 函数
media.image_to_gallery(file_path:str):
参数类型必须备注
file_pathstring必填图片文件的路径地址
# 将logo图片,存储至系统相册,并通知系统更新.
# 导包
from ascript.android import media
media.image_to_gallery(R.img("logo.png"))

发送邮件

# 导入 smtp邮件包
import smtplib

在这里我们使用 Python库 smtplib 实现邮件的发送

阿里云语音合成

阿里云官网

初始化

初始化阿里云语音合成对象

  • 函数
media.AliTts(app_key:str,
ak_id:str,
ak_secret:str,
font_name:str="siqi",
speed_level:str="1",
pitch_level:str="0",
volume:str="1.0"
)
参数类型必须备注
app_keydict必填阿里云后台创建的appkey
ak_iddict必填阿里云后台创建的AccessKey ID
ak_secretdict必填阿里云后台创建的AccessKey Secret
font_namestr发音人 ,音色列表,默认:siqi
speed_levelstr语速,取值范围:0~2,默认值:1.0,值越大语速越快。
pitch_levelstring语调,取值范围:-500~500,默认值:0,值越大声音越尖锐。
volumestring音量默认1.0, 取值:0-2之间
# 初始化TTS 语音合成器
from ascript.android import media

app_key = "****"
ak_id = "****"
ak_secret = "******"
# 上面3个值,需要传入自己的阿里云后台数据.

tts = media.AliTts(app_key,ak_id,ak_secret)

# 初始化TTS 语音合成器, 语速2倍,音调300
from ascript.android import media

app_key = "****"
ak_id = "****"
ak_secret = "******"
# 上面3个值,需要传入自己的阿里云后台数据.

tts = media.AliTts(app_key,ak_id,ak_secret,speed_level="2.0",pitch_level="300")

合成语音

将文字转换为音频

media.AliTts(...).start(tts_msg:str,auto_play:bool=True,save_file=None)
参数类型必须备注
tts_msgdict转音频的文字
ak_iddict是否自动播放,默认自动播放
ak_secretdict要存储语音的路径
  • 示例
# 文字转语音
from ascript.android import media

app_key = "****"
ak_id = "****"
ak_secret = "****"

tts = media.AliTts(app_key,ak_id,ak_secret)

tts.start("遥遥领先AScript!")