Media - 多媒体
<p>[TOC]</p>
<h1>Media</h1>
<blockquote>
<p>Stability: 2 - Stable</p>
</blockquote>
<p>media模块提供多媒体编程的支持。目前仅支持音乐播放和媒体文件扫描。后续会结合UI加入视频播放等功能。</p>
<p>需要注意是,使用该模块播放音乐时是在后台异步播放的,在脚本结束后会自动结束播放,因此可能需要插入诸如<code>sleep()</code>的语句来使脚本保持运行。例如:</p>
<pre><code>//播放音乐
media.playMusic("/sdcard/1.mp3");
//让音乐播放完
sleep(media.getMusicDuration());</code></pre>
<h2>media.scanFile(path)</h2>
<ul>
<li><code>path</code> {string} 媒体文件路径</li>
</ul>
<p>扫描路径path的媒体文件,将它加入媒体库中;或者如果该文件以及被删除,则通知媒体库移除该文件。</p>
<p>媒体库包括相册、音乐库等,因此该函数可以用于把某个图片文件加入相册。</p>
<pre><code>//请求截图
requestScreenCapture(false);
//截图
var im = captureScreen();
var path = "/sdcard/screenshot.png";
//保存图片
im.saveTo(path);
//把图片加入相册
media.scanFile(path);</code></pre>
<h2>media.playMusic(path[, volume, looping])</h2>
<ul>
<li><code>path</code> {string} 音乐文件路径</li>
<li><code>volume</code> {number} 播放音量,为0~1的浮点数,默认为1</li>
<li><code>looping</code> {boolean} 是否循环播放,如果looping为<code>true</code>则循环播放,默认为<code>false</code></li>
</ul>
<p>播放音乐文件path。该函数不会显示任何音乐播放界面。如果文件不存在或者文件不是受支持的音乐格式,则抛出<code>UncheckedIOException</code>异常。</p>
<pre><code>//播放音乐
media.playMusic("/sdcard/1.mp3");
//让音乐播放完
sleep(media.getMusicDuration());</code></pre>
<p>如果要循环播放音乐,则使用looping参数:</p>
<pre><code></code></pre>
<p>//传递第三个参数为true以循环播放音乐
media.playMusic("/sdcard/1.mp3", 1, true);
//等待三次播放的时间
sleep(media.getMusicDuration() * 3);</p>
<pre><code></code></pre>
<p>如果要使用音乐播放器播放音乐,调用<code>app.viewFile(path)</code>函数。</p>
<h2>media.musicSeekTo(msec)</h2>
<ul>
<li><code>msec</code> {number} 毫秒数,表示音乐进度</li>
</ul>
<p>把当前播放进度调整到时间msec的位置。如果当前没有在播放音乐,则调用函数没有任何效果。</p>
<p>例如,要把音乐调到1分钟的位置,为<code>media.musicSeekTo(60 * 1000)</code>。</p>
<pre><code>//播放音乐
media.playMusic("/sdcard/1.mp3");
//调整到30秒的位置
media.musicSeekTo(30 * 1000);
//等待音乐播放完成
sleep(media.getMusicDuration() - 30 * 1000);</code></pre>
<h2>media.pauseMusic()</h2>
<p>暂停音乐播放。如果当前没有在播放音乐,则调用函数没有任何效果。</p>
<h2>media.resumeMusic()</h2>
<p>继续音乐播放。如果当前没有播放过音乐,则调用该函数没有任何效果。</p>
<h2>media.stopMusic()</h2>
<p>停止音乐播放。如果当前没有在播放音乐,则调用函数没有任何效果。</p>
<h2>media.isMusicPlaying()</h2>
<ul>
<li>返回 {boolean}</li>
</ul>
<p>返回当前是否正在播放音乐。</p>
<h2>media.getMusicDuration()</h2>
<ul>
<li>返回 {number}</li>
</ul>
<p>返回当前音乐的时长。单位毫秒。</p>
<h2>media.getMusicCurrentPosition()</h2>
<ul>
<li>返回 {number}</li>
</ul>
<p>返回当前音乐的播放进度(已经播放的时间),单位毫秒。</p>