「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1571
現在:3


メディアプレーヤーをマクロで制御

ページOpenOffice.org FAQの登録ページ
投稿者S-Osaka
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-10-14 18:39:57 (木)
OSwin vista
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

株価のチャンスピンチを以下の関数で音声ファイルを鳴らして知らせるようにしています。

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
   (ByVal loszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

calcにメディアプレーヤーと言うのがあるのを見つけたのでこれをマクロから制御できればOSに依存せずシグナル音がならせるのではないかと期待しています。
方法があればどうか教えてください。
よろしくお願いします。
尚、マクロ記録ではメディアプレーヤーを受け付けないのでやや不安です。


sample です

wannwanno (2010-10-14 22:51:48 (木))

	sub Main1
		Dim oManager As Object
		Dim oPlayer As Object
		
		oManager = CreateUnoService("com.sun.star.media.Manager_DirectX")
		oPlayer = oManager.createPlayer("file:///c:/a.mp3")
		oPlayer.setVolumeDB(-20)
		oPlayer.Start
		while oPlayer.MediaTime < oPlayer.StopTime
			wait 100
		wend
	end sub

すいません修正しました isPlaying が false になると思ってたのに、ならねーでやんの orz

ありがとうございました。

S-Osaka (2010-10-15 19:05:28 (金))

これは、演奏中ずっとプロシージャが実行状態のようですが、メディアプレーヤというものがあって、ファイルをあててプレイをオンするだけのような命令をイメージしていたのですがそういう風にはいかないのですね。

作り直してみました

wannwanno (2010-10-16 13:51:01 (土))

	Dim oPlayer As Object
	
	Sub ChanceVoice
		Voice("c:/Chance.wav")
	End Sub
	
	Sub PinchVoice
		Voice("c:/Pinch.wav")
	End Sub
	
	Sub Voice(s As String)
		Dim oManager As Object
		oManager = CreateUnoService("com.sun.star.media.Manager_DirectX")
		if IsNull(oManager) then oManager = CreateUnoService("com.sun.star.media.Manager_GStreamer")
		oPlayer = oManager.createPlayer("file:///" + s)
		oPlayer.setVolumeDB(-20)
		oPlayer.Start
	End Sub

・はにゃ? さんのサイトによるとLinuxのマネージャは Manager_GStreamer らしいので追加しました。(Linuxでの動作未確認)
・ローカル変数の場合ルーチンを抜けると、インスタンスが破棄されて演奏が止まってしまうので、ループを回してあったのですが、これをグローバル変数に替えて、すぐにルーチンを抜ける様にしてみました。
・Volume は調整してみて下さい。

グローバル変数について

はにゃ? (2010-10-16 15:31:01 (土))

oPlayer 変数はルーチン外で Dim ステートメントを用いて定義されているので、モジュール変数です。グローバル変数は Global を利用して定義されるものです。

無題

wannwanno (2010-10-16 18:00:56 (土))

失礼しました、OOoでの名前ルールを混乱していました。
用語は正しく使う必要がありますね、ありがとうございます。

リナックス使えたらラッキーですが、

S-Osaka (2010-10-17 01:52:55 (日))

楽天RSSをリナックスで走らせる方法をネットで拾ったんですよ。
リナックスに乗り換えたいのがバレましたね。
至れり尽くせりお世話になりました。

お名前:
題名: