皆さんこんにちは!みっくです。
FileMaker で音を鳴らす① の続編でございます。
( ↓前回の記事はこちら)
スクリプトを使って音を鳴らすにはどんな方法があるでしょうか。
さっそく見ていきましょー
[AVPlayer 再生] スクリプトステップを使用(※ FileMaker Go のみ)
こちらは FileMaker Go でのみ可能な方法です。
[AVPlayer 再生] スクリプトステップを使用して、スクリプトからオブジェクトフィールドに格納しているオーディオファイルを再生することができます。
オプション設定の [ソース] から、メディアのソースを選択します。
- [レイアウトオブジェクト…] レイアウト上のオブジェクト名を指定します。レイアウト上に再生するオブジェクトフィールドが配置されている必要があります。(表に見えていない状態、別のオブジェクトで重ねて隠れている状態でも大丈夫です。)
- [フィールド…] オブジェクトフィールドを選択します。こちらはレイアウト上にフィールドが表示されていない状態でも再生することができます。
- [URL…] 再生するメディアを含むURLを指定します。
続けて、[表示] で オーディオのみ を選択すると、[ソース] で指定されたメディアの音声だけが再生されるようになります。
何らかの処理の後、このスクリプトステップを使用して音を鳴らすことができます。
処理完了! ピロリン♪
といったように、音が鳴るとシステムを使う人もなんだか楽しくなるのではないでしょうか。
あまり頻繁に鳴らしすぎると、音がうっとうしい!となりかねないので、用法用量を守ってお使いください。
[Webビューア で JavaScript を実行] スクリプトステップを使用する
FileMaker Go だけじゃなくて、PCでも音を鳴らしたいのっ!という貴方に贈る、Webビューアを使った音の鳴らし方です。
名前に 「websound」 とつけた、Webビューアを作成し、 Webアドレスに 「$$html」 を指定します。
スクリプトを下記のように作成します。
[テキストを挿入] で Webビューアに指定したグローバル変数 $$html をターゲットにして、下記のHTMLソースをセットします。
data:text/html,<!DOCTYPE html>
<meta charset="utf-8">
<script type="text/javascript">
const base64 = "★ここにデータをいれるよ★";
const datauri = "data:audio/mp3;base64," + base64;
const sound = new Audio(datauri);
function playSound(){
sound.play();
};
</script>
</html>
※ Webビューアに直接このソースを入れる場合は、文中のダブルクォーテーションの前にバックスラッシュを入れる必要があります。
オブジェクトフィールドに格納しているファイルを Base64 エンコードし、$$html の指定の箇所に入れます。
Base64Encode 関数は Base64 フォーマットのテキストが改行付きの形式で返されます。
個人的には改行なしの方が取り扱いやすいと思ったので、今回は改行なしで出せる Base64EncodeRFC 関数 を使用します。
Base64EncodeRFC ( 4648 ; オブジェクトフィールドを指定 )
結果はこのような、長いなが〜いテキストの羅列で返されます。(だいぶ省略しています)
//uwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAhAABTQwAHBwcPDw8XFxcfHx8mJiYuLi42NjY+Pj5FRUVNTU1VVVVdXV1kZGRsbGx0dHR8fHyDg4OLi4uTk5Obm5uioqKqqqqysrK6urrBwcHJycnR0dHZ2dng4ODo6Ojw8PD4
こうして作成したスクリプトを「Webビューア更新」ボタンに割り当てます。
もう一つのボタンでは、 [Webビューア で JavaScript を実行] スクリプトを実行します。
Webビューアのオブジェクト名 「websound」 を指定し、JavaScriptの関数「playSound」を関数名に指定します。
「Webビューア更新」 → 「音が鳴るよ」 の順に押すと、音が鳴る仕組みです。
この方法は Windows/Mac、iOS どれでも動作が可能です。
毎回Base64エンコードせずに、Base64のテキストデータを直接HTMLに書き込むのもいいですし、
別のテーブルにデータを保存しておいて、それを元にHTMLを生成する等、工夫次第で色々な音を FileMaker から奏でられるようになります!
ぜひお試しください♪