Skip to main content
Known Participant
November 8, 2017
解決済み

CEPにおけるローカルパス取得について

  • November 8, 2017
  • 返信数 1.
  • 2213 ビュー

AdobeのExtendScript(JavaScript)とCEPを使い,Premiere Pro 2018の以下のようなアドオンを作っています.

  • wavファイルを読み込む
  • wavファイルをアクティブシーケンスの再生位置に挿入する
  • 同フォルダに同じ名前のtextが存在したら読み込む
  • textの文字列を音声フォルダと同じ位置にテキストグラフィックとして挿入する

このとき,wavファイルを自作パネルにてドラッグ&ドロップでimportしようと考えているのですが,ExtendScriptにて絶対パスの取得は可能でしょうか?

このトピックへの返信は締め切られました。
解決に役立った回答 Ten A

お早い返信ありがとう御座います.

言い忘れていました・・・


ドロップしたペイロードはB64でエンコードされた状態で見えていたりするのでなんとも言いがたいのですが、OS側のフックとかで対応できるかもしれませんね。

Extensions / Add-ons Development こちらだと良い案が出るかもしれません。

返信数 1

Ten A
Community Expert
Community Expert
November 8, 2017

純粋にV8エンジン側の操作でファイルパスを取得することになります。以下のリンクを参照下さい。

https://github.com/KupinFB/Adobe-HTML-Extension-Drag-and-Drop/blob/master/index.html

Ten A
Community Expert
Community Expert
November 8, 2017

勘違いしてましたね、OSからのd&dはファイルの中身がそのままエンコードされた状態で来ますからパスは取れないかな。

d&dイベント回りを精査して見ないとなんとも言えませんが、ドロップした段階でファイルのインポートは行われるので動画系の大きなファイルはそれだけ処理に時間がかかるような気がします。

Ten A
Community Expert
Community Expert
November 8, 2017

そうなんですね.

何から何までありがとう御座います.


ちょいと思い出したので追記しておきます。

CEPと言えど中身はChrome Embeded FrameworkですからChrome上で動いているといえます。そして、ファイル操作関連ではセキュリティに関連する問題からファイルパス自体を扱う仕組みが実装されていません。

では、CEPではどうしているかというとcep以下にネイティブファンクションを追加し操作を行うようにしています。たとえば

window.cep.fs.readFile("/testFiles/test.png");

という具合のファイル操作関連関数群が設定されています。

しかしながらドロップされたオブジェクト自体は前にも言及したようにエンコードされた形でファイルの実体が保持されています。ドロップイベントからこの実体を抽出してデコードしファイル保存する事でファイルとして扱えますが、WAVファイルのような容量の大きいものをこういった処理に通すのは現実的ではないようにも思います。