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( )」の例を参照してください。