Oracle Multimediaでは、オーディオ・データの格納および管理をサポートするORDAudioオブジェクト型が記述されます。
ORDAudioオブジェクト型は、ordaspec.sqlファイルで定義されています。 インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。
<ORACLE_HOME>/ord/im/admin(LinuxおよびUNIXの場合)
<ORACLE_HOME>\ord\im\admin(Windowsの場合)
Oracle Multimediaには、ORDAudioオブジェクト型について次の情報が含まれます。
この章の例では、Product Mediaサンプル・スキーマのONLINE_MEDIA表を使用しています。ご使用のコンピュータでこれらの例を再現するには、まず、ORDAudioのコンストラクタ、およびimport( )とimportFrom( )メソッドの項に示す例を実行する必要があります。例に示すオーディオ・ファイルは、実際のファイルに置き換えてください。また、ユーザーronがこの例を使用する場合、例の実行前に次の文を発行する必要があります。ここで/mydir/workは、ronがオーディオ・データを検索するディレクトリです。
CONNECT /as sysdba CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work'; GRANT READ ON DIRECTORY FILE_DIR TO 'ron';
サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
|
注意: (BLOBを直接修正するか、または外部ソースを変更して)オーディオ・データ自体を操作した場合、オブジェクト属性の同期化が保持され、更新時刻が修正されていることを確認する必要があります。そうしないと、オブジェクト属性がオーディオ・データと一致しなくなります。 |
ORDSourceレベルでコールされたメソッドは、ソース・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当ててNULLに初期化してから、openSource( )メソッドをコールする必要があります。このとき、ソース・プラグインが、このクライアント用にコンテキストを初期化できます。処理が完了したら、クライアントからcloseSource( )メソッドをコールする必要があります。
ソース・プラグインのコールによってコールされたメソッドは、最初の引数にctx (RAW)を取ります。
ORDAudioレベルでコールされたメソッドは、フォーマット・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。
|
注意: 今回のリリースでは、Oracleが提供するいずれのプラグインもctx構造体を使用しません。また、すべてのソース・プラグインまたはフォーマット・プラグインがctx構造体を使用するわけではありませんが、前述の方法でコーディングすると、アプリケーションは、現行または今後のソース・プラグインまたはフォーマット・プラグインで動作します。 |
ネイティブにサポートされていないフォーマットの場合、個々のいずれかのsetメソッドを使用して、オブジェクトの属性値を設定する必要があります。ネイティブにサポートされているフォーマットの場合は、setProperties( )メソッドを使用して、オブジェクトの属性を移入するか、またはフォーマット・プラグインを記述します。
ORDAudioオブジェクト型は、オーディオ・データの格納と管理をサポートします。 このオブジェクト型の属性は、ordaspec.sqlファイルで次のように定義されています。
------------------- -- TYPE ATTRIBUTES ------------------- description VARCHAR2(4000), source ORDSource, format VARCHAR2(31), mimeType VARCHAR2(4000), comments CLOB, -- AUDIO RELATED ATTRIBUTES encoding VARCHAR2(256), numberOfChannels INTEGER, samplingRate INTEGER, sampleSize INTEGER, compressionType VARCHAR2(4000), audioDuration INTEGER,
属性の説明は次のとおりです。
description: オーディオ・オブジェクトの説明。
source: オーディオ・データが格納されるORDSource。
format: オーディオ・データの格納フォーマット。
mimeType: MIMEタイプについての情報。
comments: オーディオ・オブジェクトのメタデータ情報。
encoding: オーディオ・データのエンコーディング・タイプ。
numberOfChannels: オーディオ・データのオーディオ・チャネル数。
samplingRate: オーディオ・データのサンプリング・レート(Hz単位)。
sampleSize: データ内のオーディオのサンプル幅またはサンプル数。
compressionType: オーディオ・データの圧縮タイプ。
audioDuration: 格納されたオーディオ・データの再生時間。
|
注意: comments属性は、setCommentsパラメータがTRUEである場合、setProperties( )メソッドによって移入されます。この属性に対して直接書込みしないことをお薦めします。 |
この項では、ORDAudioの次のコンストラクタ・ファンクションについて説明します。
構文
init( ) RETURN ORDAudio;
説明
ORDAudioオブジェクト型のインスタンスを初期化します。
パラメータ
なし
プラグマ
なし
例外
なし
使用上の注意
このコンストラクタは、すべてのORDAudio属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。
source.updateTimeは、SYSDATEに設定されます。
source.localは、1(ローカル)に設定されます。
source.localDataは、empty_blobに設定されます。
できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDAudioオブジェクト型(特に今後のリリースで、ORDAudio型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。
例
ORDAudioオブジェクト属性を初期化します。
BEGIN INSERT INTO pm.online_media (product_id, product_audio) VALUES (1729, ORDSYS.ORDAudio.init()); COMMIT; END; /
構文
init(srcType IN VARCHAR2,
srcLocation IN VARCHAR2,
srcName IN VARCHAR2)
RETURN ORDAudio;
説明
ORDAudioオブジェクト型のインスタンスを初期化します。
パラメータ
オーディオ・データのソース・タイプを指定します。
オーディオ・データのソース位置を指定します。
オーディオ・データのソース名を指定します。
プラグマ
なし
例外
なし
使用上の注意
このコンストラクタは、すべてのORDAudio属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。
source.updateTimeは、SYSDATEに設定されます。
source.localは、0(ゼロ)に設定されます。
source.localDataは、empty_blobに設定されます。
source.srcTypeは、入力値に設定されます。
source.srcLocationは、入力値に設定されます。
source.srcNameは、入力値に設定されます。
できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDAudioオブジェクト型(特に今後のリリースで、ORDAudio型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。
例
ORDAudioオブジェクト属性を初期化します。
BEGIN
INSERT INTO pm.online_media (product_id, product_audio)
VALUES (1733, ORDSYS.ORDAudio.init('FILE', 'FILE_DIR','speaker.au'));
COMMIT;
END;
/
この項では、特にオーディオ・データの操作に使用するOracle Multimediaのメソッドに関するリファレンス情報を示します。
ORDAudio、ORDDoc、ORDImageおよびORDVideoに共通のOracle Multimediaのメソッドに関するリファレンス情報については、第2章を参照してください。この章と第2章に示すメソッドを使用すると、属性の取得と設定およびメタデータの抽出を実行できます。
オブジェクト型およびメソッドの詳細は、『Oracle Database概要』を参照してください。
この項で説明するメソッドは、次のとおりです。
構文
checkProperties(ctx IN OUT RAW) RETURN BOOLEAN;
説明
オーディオ属性(サンプル・サイズ、サンプリング・レート、チャネル数、フォーマットおよびエンコーディング・タイプ)を含む、格納されたオーディオ・データのプロパティをチェックします。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
使用上の注意
formatの値がNULLの場合、checkProperties( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、formatで指定されたプラグインを使用します。
ファイルには有効なMIMEタイプが複数含まれる場合があるため、checkProperties( )メソッドはMIMEタイプをチェックしません。
プラグマ
なし
例外
ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION
この例外は、checkProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
既知のオーディオ属性のプロパティ情報をチェックします。
DECLARE
obj ORDSYS.ORDAudio;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1729;
IF ( obj.checkProperties(ctx) = TRUE ) THEN
DBMS_OUTPUT.PUT_LINE('true');
ELSE
DBMS_OUTPUT.PUT_LINE('false');
END IF;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getAllAttributes(ctx IN OUT RAW,
attributes IN OUT NOCOPY CLOB);
説明
クライアント・アクセスを容易にするため、文字列をフォーマットして戻します。ネイティブにサポートされたフォーマットでは、文字列には、カンマ(,)で区切られたオーディオ・データ属性(fileFormat、mimeType、encoding、numberOfChannels、samplingRate、sampleSize、compressionTypeおよびaudioDuration)のリストが含まれます。ユーザー定義のフォーマットの場合は、フォーマット・プラグインによって文字列が定義されます。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
属性を指定します。
使用上の注意
通常、これらのオーディオ・データ属性は、フォーマットされたオーディオ・データのヘッダーから取得可能です。
プラグマ
なし
例外
ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION
この例外は、getAllAttributes( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データベースに格納されているオーディオ・データのすべてのオーディオ属性を戻します。
DECLARE
obj ORDSYS.ORDAudio;
tempLob CLOB;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1729;
DBMS_OUTPUT.PUT_LINE('getting comma separated list of all attributes');
DBMS_OUTPUT.PUT_LINE('-------------------------------------------');
DBMS_LOB.CREATETEMPORARY(tempLob, FALSE, DBMS_LOB.CALL);
obj.getAllAttributes(ctx,tempLob);
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.substr(tempLob, DBMS_LOB.getLength(tempLob),1));
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION caught');
END;
/
構文
getAttribute(ctx IN OUT RAW,
name IN VARCHAR2)
RETURN VARCHAR2;
説明
ユーザー定義フォーマットのみに対応したオーディオ・データから、要求された属性値を戻します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
属性の名前を指定します。
使用上の注意
通常、オーディオ・データ属性は、フォーマットされたオーディオ・データのヘッダーから取得可能です。
オーディオ・データ属性情報は、オーディオ・データ自体から抽出可能です。ORDAudioオブジェクトで認識されないフォーマットは、そのフォーマットをサポートしているORDPLUGINS.ORDX_<format>_AUDIOパッケージを実装することによって、サポートできます。詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。
プラグマ
なし
例外
ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION
この例外は、getAttribute( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データベースに格納されているオーディオ・データの、指定したオーディオ属性情報を戻します。(この例では、ユーザー作成のプラグインではなく、サポートされたデータ・フォーマットを使用しているため、例外が発生します。)
DECLARE
obj ORDSYS.ORDAudio;
res VARCHAR2(4000);
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733;
DBMS_OUTPUT.PUT_LINE('getting audio sample size');
DBMS_OUTPUT.PUT_LINE('---------------------');
res := obj.getAttribute(ctx,'sample_size');
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('AUDIO PLUGIN EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getAudioDuration( ) RETURN INTEGER;
説明
オーディオ・オブジェクトのaudioDuration属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setKnownAttributes( )」の例を参照してください。
構文
getCompressionType( ) RETURN VARCHAR2;
説明
オーディオ・オブジェクトのcompressionType属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setKnownAttributes( )」の例を参照してください。
構文
getContentLength(ctx IN OUT RAW) RETURN INTEGER;
説明
ソースに格納されたオーディオ・データのコンテンツ長を戻します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
使用上の注意
なし
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、getContentLength( )メソッドをコールし、source.srcType属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「import( )」の例を参照してください。
構文
getContentInLob(ctx IN OUT RAW,
dest_lob IN OUT NOCOPY BLOB,
mimeType OUT VARCHAR2,
format OUT VARCHAR2);
説明
データ・ソースのデータを、指定されたBLOBにコピーします。コピー先のBLOBは、(埋込みORDSourceオブジェクトの)source.localData属性内のBLOBとは異なる必要があります。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
データのコピー先のLOBを指定します。
データのMIMEタイプが戻されます(戻されない場合もあります)。
データのフォーマットが戻されます(戻されない場合もあります)。
使用上の注意
なし
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、getContentInLob( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データ・ソースからデータを取得して、指定したBLOBに格納します。
DECLARE
obj ORDSYS.ORDAudio;
tempBLob BLOB;
mimeType VARCHAR2(4000);
format VARCHAR2(31);
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733;
IF (obj.isLocal) THEN
DBMS_OUTPUT.PUT_LINE('local is true');
END IF;
DBMS_LOB.CREATETEMPORARY(tempBLob, true, 10);
obj.getContentInLob(ctx,tempBLob, mimeType,format);
DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(DBMS_LOB.getLength(tempBLob)));
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('ORDSourceExceptions.METHOD_NOT_SUPPORTED caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getDescription( ) RETURN VARCHAR2;
説明
オーディオ・データのdescription属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS)
例外
ORDAudioExceptions.DESCRIPTION_IS_NOT_SET
この例外は、getDescription( )メソッドをコールし、descriptionが設定されていない場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
オーディオ・データのdescription属性の値を取得します。
DECLARE
obj ORDSYS.ORDAudio;
BEGIN
-- This example assumes that the setDescription method has already been applied.
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('Current description is:');
DBMS_OUTPUT.PUT_LINE('-------------');
DBMS_OUTPUT.PUT_LINE(obj.getDescription());
COMMIT;
END;
/
構文
getEncoding( ) RETURN VARCHAR2;
説明
オーディオ・オブジェクトのencoding属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setProperties( )」の例を参照してください。
構文
getFormat( ) RETURN VARCHAR2;
説明
オーディオ・オブジェクトのformat属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS)
例外
ORDAudioExceptions.AUDIO_FORMAT_IS_NULL
この例外は、getFormat( )メソッドをコールし、formatの値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
「setProperties( )」の例を参照してください。
構文
getNumberOfChannels( ) RETURN INTEGER;
説明
オーディオ・オブジェクトのnumberOfChannels属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getNumberOfChannels, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setProperties( )」の例を参照してください。
構文
getSampleSize( ) RETURN INTEGER;
説明
オーディオ・オブジェクトのsampleSize属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setProperties( )」の例を参照してください。
構文
getSamplingRate( ) IN INTEGER;
説明
オーディオ・オブジェクトのsamplingRate属性の値を戻します。単位はHzです。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
「setProperties( )」の例を参照してください。
構文
import(ctx IN OUT RAW);
説明
外部オーディオ・データ・ソースから(埋込みORDSourceオブジェクトの)source.localData属性にオーディオ・データを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、3.2項を参照してください。
使用上の注意
import( )メソッドをコールする前に、setSource( )メソッドを使用して、外部ソースの(埋込みORDSourceオブジェクトの)source.srcType、source.srcLocationおよびsource.srcName属性を設定します。
source.srcType属性の値がfileの場合、このメソッドを使用する前に、外部ソースの位置にディレクトリが存在するか、または作成されていることを確認する必要があります。
外部オーディオ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートした後も、ソース情報は変更されません(データのインポート元のソースを指したままです)。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
このメソッドは、ORDSourceレベルでコールされます。このレベルでは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データがインポートされます。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用します。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。
UTL_HTTP PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、import( )メソッドをコールし、source.srcType属性の値がNULLの場合に発生します。
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、import( )メソッドをコールし、使用するソース・プラグインがimport( )メソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、import( )メソッドをコールし、source.localData属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
外部オーディオ・データ・ソースからローカル・ソースにオーディオ・データをインポートします。
DECLARE
obj ORDSYS.ORDAudio;
ctx RAW(64) := NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('getting source');
DBMS_OUTPUT.PUT_LINE('--------------------------');
-- get source information
DBMS_OUTPUT.PUT_LINE(obj.getSource());
-- import data
obj.import(ctx);
-- check size
DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx)));
UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1733;
COMMIT;
END;
/
構文
importFrom(ctx IN OUT RAW,
source_type IN VARCHAR2,
source_location IN VARCHAR2,
source_name IN VARCHAR2);
説明
指定された外部オーディオ・データ・ソースからデータベース内の(埋込みORDSourceオブジェクト型の)source.localData属性にオーディオ・データを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、3.2項を参照してください。
ソース・オーディオ・データのタイプを指定します。
インポート元のソース・オーディオ・データの位置を指定します。
ソース・オーディオ・データの名前を指定します。
使用上の注意
このメソッドは、ソース情報を個別に指定せずにパラメータで指定すること以外は、import( )メソッドと同じです。
source_typeパラメータの値がfileの場合、このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。
外部オーディオ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートすると、(データのインポート元のソースを指している)ソース情報は入力値に設定されます。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
このメソッドは、ORDSourceレベルでコールされます。このレベルでは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データがインポートされます。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用します。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。
UTL_HTTP PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、importFrom( )メソッドをコールし、source.localData属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
指定した外部データ・ソースからローカル・ソースにオーディオ・データをインポートします。
DECLARE
obj ORDSYS.ORDAudio;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1729 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('setting and getting source');
DBMS_OUTPUT.PUT_LINE('--------------------------');
-- set source to a file
-- import data
obj.importFrom(ctx,'file','FILE_DIR','birds.wav');
-- check size
DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx)));
DBMS_OUTPUT.PUT_LINE(obj.getSource());
UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1729;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('Source not specified');
END;
/
構文
processAudioCommand(ctx IN OUT RAW,
cmd IN VARCHAR2,
arguments IN VARCHAR2,
result OUT RAW)
RETURN RAW;
説明
コマンドおよびその引数を、処理のためにフォーマット・プラグインに送信します。
|
注意: このメソッドは、ユーザー定義のフォーマット・プラグインのみでサポートされます。 |
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
フォーマット・プラグインによって認識されるコマンドを指定します。
コマンドの引数を指定します。
フォーマット・プラグインによって戻される、このメソッドのコール結果です。
使用上の注意
このメソッドを使用して、任意のオーディオ・コマンドおよびその引数をフォーマット・プラグインに送信します。指定したコマンドは、このメソッドでは解釈されず、そのままフォーマット・プラグインに渡されて処理されます。
ユーザー定義のフォーマット・プラグインを使用するには、format属性の値を、processAudioCommand( )をサポートするプラグインを実装したユーザー定義フォーマットに設定する必要があります。
ORDAudioオブジェクトで認識されないフォーマットは、そのフォーマットをサポートするORDPLUGINS.ORDX_<format>_AUDIOパッケージを実装することによって、サポートできます。詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。
プラグマ
なし
例外
ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION
この例外は、processAudioCommand( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
なし
構文
setAudioDuration(knownAudioDuration IN INTEGER);
説明
オーディオ・オブジェクトのaudioDuration属性の値を設定します。
パラメータ
既知のオーディオ再生時間を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setAudioDuration( )メソッドをコールし、knownAudioDurationパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。
構文
setCompressionType(knownCompressionType IN VARCHAR2);
説明
オーディオ・オブジェクトのcompressionType属性の値を設定します。
パラメータ
既知の圧縮タイプを指定します。
使用上の注意
多くのオーディオ・フォーマットでは、エンコーディングと圧縮タイプが密接に統合されているため、compressionType値は、常にencoding属性の値と一致します。詳細は、付録Aを参照してください。
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setCompressionType( )メソッドをコールし、knownCompressionTypeパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。
構文
setDescription (user_description IN VARCHAR2);
説明
オーディオ・データのdescription属性の値を設定します。
パラメータ
オーディオ・データの説明を指定します。
使用上の注意
一部のクライアント・アプリケーションでは、各オーディオ・オブジェクトの説明が必要な場合があります。たとえば、Webベースのクライアントでは、オーディオの説明のリストを表示できます。ユーザーは、いずれかの説明を選択してオーディオ・データにアクセスできます。
Oracle MultimediaのWebアクセス・コンポーネントおよびその他のクライアント・コンポーネントは、このdescription属性を使用して、ユーザーにオーディオ・データを提示します。
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
オーディオ・データのdescription属性の値を設定します。
DECLARE
obj ORDSYS.ORDAudio;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('writing new title');
DBMS_OUTPUT.PUT_LINE('-------------');
obj.setDescription('This is audio for product 1733');
DBMS_OUTPUT.PUT_LINE(obj.getDescription());
UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1733;
COMMIT;
END;
/
構文
setEncoding(knownEncoding IN VARCHAR2);
説明
オーディオ・オブジェクトのencoding属性の値を設定します。
パラメータ
既知のエンコーディング・タイプを指定します。
使用上の注意
多くのオーディオ・フォーマットでは、エンコーディングと圧縮タイプが密接に統合されているため、encoding属性の値は、常にcompressionType値と一致します。詳細は、付録Aを参照してください。
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setEncoding( )メソッドをコールし、knownEncodingパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。
構文
setFormat(knownFormat IN VARCHAR2);
説明
オーディオ・オブジェクトのformat属性の値を設定します。
パラメータ
オーディオ・オブジェクトに設定する、既知のオーディオ・データ・フォーマットを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setFormat( )メソッドをコールし、knownFormatパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
オーディオ・データのフォーマット(およびその他の属性)を設定します。
DECLARE
obj ORDSYS.ORDAudio;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733 FOR UPDATE;
obj.setFormat('AUFF');
obj.setEncoding('MULAW');
obj.setNumberOfChannels(1);
obj.setSamplingRate(8);
obj.setSampleSize(8);
obj.setCompressionType('8BITMONOAUDIO');
obj.setAudioDuration(16);
DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat());
DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding());
DBMS_OUTPUT.PUT_LINE(
'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels()));
DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate()));
DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize()));
DBMS_OUTPUT.PUT_LINE('compressionType : ' || obj.getCompressionType());
DBMS_OUTPUT.PUT_LINE('audioDuration: ' || TO_CHAR(obj.getAudioDuration()));
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.NULL_INPUT_VALUE THEN
DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.NULL_INPUT_VALUE caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
setKnownAttributes(knownFormat IN VARCHAR2,
knownEncoding IN VARCHAR2,
knownNumberOfChannels IN INTEGER,
knownSamplingRate IN INTEGER,
knownSampleSize IN INTEGER,
knownCompressionType IN VARCHAR2,
knownAudioDuration IN INTEGER);
説明
オーディオ・オブジェクトに既知のオーディオ属性を設定します。
パラメータ
既知のフォーマットを指定します。
既知のエンコーディング・タイプを指定します。
既知のチャネル数を指定します。
既知のサンプリング・レートを指定します。
既知のサンプル・サイズを指定します。
既知の圧縮タイプを指定します。
既知のオーディオ再生時間を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
オーディオ・データの既知の属性を設定します。
DECLARE
obj ORDSYS.ORDAudio;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1733 FOR UPDATE;
obj.setKnownAttributes('AUFF','MULAW', 1, 8, 8, '8BITMONOAUDIO',16);
DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat());
DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding());
DBMS_OUTPUT.PUT_LINE(
'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels()));
DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate()));
DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize()));
DBMS_OUTPUT.PUT_LINE('compressionType : ' || obj.getCompressionType());
DBMS_OUTPUT.PUT_LINE('audioDuration: ' || TO_CHAR(obj.getAudioDuration()));
UPDATE pm.online_media p SET p.product_audio = obj
WHERE p.product_id = 1733;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.METHOD_NOT_SUPPORTED caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
setNumberOfChannels(knownNumberOfChannels IN INTEGER);
説明
オーディオ・オブジェクトのnumberOfChannels属性の値を設定します。
パラメータ
既知のチャネル数を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setNumberOfChannels( )メソッドをコールし、knownNumberOfChannelsパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。
構文
setProperties(ctx IN OUT RAW,
setComments IN BOOLEAN);
説明
オーディオ・データを読み取ってオブジェクト属性の値を取得し、取得した値をオブジェクト属性に格納します。このメソッドは、値が使用可能なオーディオ・データの属性のプロパティを設定します。属性には、圧縮タイプ、再生時間、エンコーディング・タイプ、フォーマット、MIMEタイプ、チャネル数、サンプリング・レートおよびサンプル・サイズが含まれます。setCommentsパラメータの値がTRUEの場合、オブジェクトのコメント・フィールドに、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
オブジェクトのコメント・フィールドが移入されるかどうかを示すブール値を指定します。値がTRUEの場合、オブジェクトのコメント・フィールドに、XML形式でオーディオ・オブジェクトの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。値がFALSEの場合、オブジェクトのコメント・フィールドは移入されません。デフォルト値はFALSEです。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれの属性はNULL値に設定されます。
このメソッドをコールする前にformat属性の値がNULLに設定されている場合、setProperties( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、formatで指定されたプラグインを使用します。
プラグマ
なし
例外
ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION
この例外は、setProperties( )メソッドをコールし、オーディオ・プラグインに例外が発生した場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
既知のオーディオ属性のプロパティ情報を設定します。
DECLARE
obj ORDSYS.ORDAudio;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_audio INTO obj FROM pm.online_media p
WHERE p.product_id = 1729 FOR UPDATE;
obj.setProperties(ctx,FALSE);
DBMS_OUTPUT.PUT_LINE('format: ' || obj.getformat);
DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding);
DBMS_OUTPUT.PUT_LINE(
'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels));
DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate));
DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize));
UPDATE pm.online_media p set p.product_audio = obj
WHERE p.product_id = 1729;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.METHOD_NOT_SUPPORTED caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
setSamplingRate(knownSamplingRate IN INTEGER);
説明
オーディオ・オブジェクトのsamplingRate属性の値を設定します。単位はHzです。
パラメータ
既知のサンプリング・レートを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setSamplingRate( )メソッドをコールし、knownSamplingRateパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。
構文
setSampleSize(knownSampleSize IN INTEGER);
説明
オーディオ・オブジェクトのsampleSize属性の値を設定します。
パラメータ
既知のサンプル・サイズを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDAudioExceptions.NULL_INPUT_VALUE
この例外は、setSampleSize( )メソッドをコールし、knownSampleSizeパラメータの値がNULLの場合に発生します。
ORDAudioExceptions.NULL_SOURCE
この例外は、ORDAudio.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFormat( )」の例を参照してください。