【Adobe InDesign】動画・音声の再生をショートカットで

## はじめに
この記事は、いつも良質なアウトプットで好奇心を刺激してくれるめんたいこ（[kickbase][L1])さんの始めた[活動（fac）][pj1]に共感を覚え微力ながら力になれればと思い書いたものです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">クリエイティブの力でコロナに対抗しようぜムーブメントであるFACは参加者を募集中です。<br><br>情報発信はメディアはブログでも動画でもなんでもOK。<br><br>ボランティアベースの活動となりますが、参加してくださる方はメンションかDMくださいませ！ <a href="https://twitter.com/hashtag/fac?src=hash&amp;ref_src=twsrc%5Etfw">#fac</a><a href="https://t.co/em5Yy63lOn">https://t.co/em5Yy63lOn</a></p>&mdash; めんたいこ (@kickbase) <a href="https://twitter.com/kickbase/status/1257999948550828033?ref_src=twsrc%5Etfw">May 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 


技術的には特に目新しいことはなく、アプローチを変えて課題を解決したという話です。
## メディア
あまり馴染みのない方もいらっしゃるかもしれませんが（私も仕事では扱ったことがありません）、InDesignは画像ファイルだけでなく、動画や音声ファイルを配置することができます。
![スクリーンショット 2020-05-16 10.07.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7001/c78e4d0d-0d28-224b-3ed2-752688b7cc3e.png)
上のスクリーンショットはmp3ファイルを配置したものです。スピーカーのアイコンが見えていますが、InDesignファイルのままではクリックしても再生されません。
そこで**ウインドウメニュー**から**インタラクティブ** ＞ **メディア**でパネルを表示します。（動画だとスピーカーではなくサムネイルが表示されます）
![スクリーンショット 2020-05-06 21.52.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7001/3b955279-5f6e-0f01-82e8-ca682ffb0161.png)

スピーカーが表示されてもどんな音声が再生されるかはわかりません。確認するには、三角のプレイボタンを押すのですが、まあ小さい。

配置ファイルの確認するために、フレームを選択して再生ボタン。フレームを選択して再生ボタン。フレームを選択して再生ボタン………。
その都度マウス移動するので数が多いと確認作業も大変です。この再生ボタンを押すのをキーボードショートカットでできればずいぶん効率化できます。  

さて、Adobeのアプリケーションのスクリプトを書いた方はお分かりだと思いますが、**パネル**はスクリプトからの制御が難しく今回のメディアパネルも再生ボタンを押すようなものは用意されていません。  

最初に考えたアプローチは『メディアパネルの位置を取得してそこから再生ボタンの位置を計算してクリックさせる』というものでしたが、System Events側からも位置はおろかパネルのカウントすらできず断念。  

[Keyboard Maestro][km]にはキャプチャした画像を元に画像解析して処理をさせるような機能があるのですが私自身まだやったことがなくこの時点では思い至らず……

やっぱりできないのかなと何気なくコンテキストメニューを出して見ていると
![スクリーンショット 2020-06-14 16.02.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7001/f8b8b074-64da-5fee-d4c5-71087a8f7bbb.png)
**元データを編集**なるものが、そしてさらにその下には**編集ツール**があり
![スクリーンショット 2020-06-14 16.07.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7001/8b880aed-6152-019c-9b43-27328401f285.png)
**QuickTime**で編集が可能なことがわかりました。

## コード  
そうとわかれば話は簡単。GUI Scriptで機能を呼び出し、QuickTimeで再生させるだけです。

``` AppleScript
tell application "Adobe InDesign CC 2019"
	activate
	tell application "System Events"
		tell process "Adobe InDesign CC 2019"
			
			tell menu bar 1
				click menu bar item 4
				
				delay 0.1
				click menu item "編集ツール" of menu 1 of menu bar item 4
				
				delay 0.1
				click menu item "QuickTime Player.app 10.4" of menu 1 of menu item 24 of menu 1 of menu bar item 4
			end tell
			
		end tell
	end tell
end tell


tell application "QuickTime Player"
	delay 1
	tell document 1
		set delayTiem to duration + 1
		play
		delay delayTiem
		close
	end tell
	quit
end tell

```

上記コードをAutomatorでサービスで作り、ショートカットを設定すれば目的達成です。

ファイルを閉じるのに**duration**で再生時間を取得し、＋1秒経過してから閉じるような処理にしています。
  
GUI Scriptは処理間でdelayを挟んだりとちょっと扱いに注意が必要なことがありますが、それでも手作業のわずらわしさを考えれば状況に応じて使っていきたいところ。

## まとめ  
さて、今回の課題は**ファイルを再生させること**です。
メディアパネルの再生はそのための手段の一つにすぎず、そこに固執してしまうと、手段が目的化してしまい行き詰まってしまうことがあるので原点に立ち返り、別のアプローチを考えてみましょうというのが今回のまとめです。



[utl]:[]
[L1]:[https://twitter.com/kickbase]
[pj1]:[https://www.kickbase.net/entry/fac]
[km]:[https://www.keyboardmaestro.com/main/]
[1257999948550828033]:[https://twitter.com/kickbase/status/1257999948550828033]