FileWriter_MP3 オブジェクト

オブジェクトの作成メソッド: Application.CreateFileWriter

MP3 ファイルを作成するオブジェクト。


■プロパティ

CodecFormat (object)
使用する圧縮フォーマット。これにオブジェクトを代入することでフォーマットを設定します。

CodecInfo (object)
圧縮フォーマット情報を持つオブジェクト。

Copyright (boolean)
MP3 フレームの Copyright ビットの設定。

Original (boolean)
MP3 フレームの Original ビットの設定。

Private (boolean)
MP3 フレームの Private ビットの設定。

Unicode (boolean)
ID3 v2 のテキストを Unicode にする場合は true。Shift-JIS (ASCII) にする場合は false。日本語まじりの場合は Unicode を推奨。

■メソッド

Process
圧縮ファイルを作成します。

■ファイル作成の手順

ファイル作成の手順はおよそこのようになります:

  1. 入力 SoundClip オブジェクトを作成する。
  2. 必要なら SoundClip.Labels, SoundClip.Text を変更する。
  3. FileWriter_MP3 オブジェクトを作成する。
  4. 圧縮フォーマット (CodecFormat) のリストを取得する。
  5. FileWriter_MP3.CodecFormat プロパティに選んだフォーマットをセットする。
  6. FileWriter_MP3.Process メソッドを実行する。
例 (JScript)
// 入力音声 (選択範囲)
var clip = Application.ActiveDocument.CreateSoundClip();
// FileWriter_MP3 オブジェクトを作成する.
var writer = Application.CreateFileWriter("mp3");
// 適当な圧縮フォーマットを選ぶ.
var fmts = writer.CodecInfo.GetCodecFormats(44100, 2);
fmts = fmts.toArray();
var i;
for (i in fmts) {
    if (Math.round(fmts[i].Bitrate / 1000) == 128) {
        // フォーマットをセットする.
        writer.CodecFormat = fmts[i];
        break;
    }
}
// ファイル作成
writer.Process(clip, "D:\\Sound Output\\test1.mp3");

例 (VBScript)
Dim clip, writer, fmts, f
' 入力音声 (選択範囲)
Set clip = Application.ActiveDocument.CreateSoundClip
' FileWriter_MP3 オブジェクトを作成する.
Set writer = Application.CreateFileWriter("mp3")
' 適当な圧縮フォーマットを選ぶ.
fmts = writer.CodecInfo.GetCodecFormats(44100, 2)
For Each f In fmts
    If Round(f.Bitrate / 1000) = 128 Then
        ' フォーマットをセットする.
        writer.CodecFormat = f
        Exit For
    End If
Next
' ファイル作成
writer.Process clip, "D:\Sound Output\test1.mp3"

■ラベルを同期歌詞にするには

ラベルを ID3v2 の同期歌詞 (Synchronized Lyrics) として添付するには以下のように SoundClip オブジェクトのテキスト情報を改変します。

例 (JScript)
// 入力音声 (選択範囲)
var clip = Application.ActiveDocument.CreateSoundClip();
var ap = clip.Text.GetAppPrivate();
ap = ap.toArray();
var i;
for (i = 0; i < ap.length; ++i) {
    if (ap[i].substring(0, 7).toUpperCase() == "SYNLYR=")
	break;
}
// 歌詞の場合 1.
ap[i] = "SYNLYR=1";
// 関数の実体は Text.SetAppPrivate メソッドの項を参照.
vararg_call(clip.Text, "SetAppPrivate", ap);

例 (VBScript)
Dim clip, ap, i
' 入力音声 (選択範囲)
Set clip = Application.ActiveDocument.CreateSoundClip
ap = clip.Text.GetAppPrivate
For i = LBound(ap) To UBound(ap)
    If StrComp(Left(ap(i), 7), "SYNLYR=", 1) = 0 Then
        Exit For
    End If
Next
If i > UBound(ap) Then
    ' 配列要素を追加する.
    ReDim Preserve ap(i)
End If
' 歌詞の場合 1.
ap(i) = "SYNLYR=1"
' 手続きの実体は Text.SetAppPrivate メソッドの項を参照.
vararg_call clip.Text, "SetAppPrivate", ap