mp3 abspielen bei bestimmten wert

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: mp3 abspielen bei bestimmten wert

Beitrag von F3K Total »

Hallo,
du kannst nur dann Dateien anhängen, wenn du dich im Forum registierst. Möchtest du das nicht, kannst du einen Filehoster verwenden und die Datei hier verlinken.
EDIT: Zu deiner Frage
Ja, grundsätzlich ist das möglich, allerdings benötigst du dazu Makros, die du programmieren musst.
Gruß R
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mp3 abspielen bei bestimmten wert

Beitrag von clag »

Hallo Ghost_Hunter,

@ F3K Total
es geht auch mit einer eigenen Funkktion.

Vor einiger Zeit hatte ich mir einmal eine solche "UDF" erstellt, die funktioniert einwandfrei,
allerdings müsste man da die Pfade anpassen. (ist ja für ein Win XP)

Code: Alles auswählen

FUNCTION PLAYON(optional repeats as integer, optional SoundFile as string) 'wie oft, welche Tonsequenz
	if IsMissing (SoundFile) Then soundfile = "c:\batch\sound\Chime.mp3"
	if IsMissing (repeats) Then repeats = 1
	playme = ConvertToUrl("c:\WINXP\system32\mplay32.exe")
	for i=1 to repeats
	Shell(playme, 2, " /play /close /new " & SoundFile, 0)
	wait 1000 ' ggf. erhöhen wenn Tonsequenz länger als 1 Sekunde
	next
End FUNCTION
diesen Code must du unter
Menü/Extras/Makros/Makros verwalten/OpenOfficeBasic.../Meine Makros_Standard_Funktionen
einfügen ggf. anpassen und abspeichern.

2 Parameter sind möglich:
ohne Parameter wird der Standardton einmal abgespielt,
1. Anzahl Wiederholungen
2. ein anderer "Pfad/Datei"

@ Ghost_Hunter

angenommen deine Ergebnisliste ist im Bereich B2:B31, dann müsste deine Formel minimal so aussehen

Code: Alles auswählen

=WENN(MAX(B2:B31)>180;PLAYON();"")
erscheint ein Wert >180 in dem Bereich , wird der Ton/ die Melodi abgespielt.

hilft dir das weiter?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
R2C2o
Beiträge: 1
Registriert: Di, 18.01.2022 14:06

Re: mp3 abspielen bei bestimmten wert

Beitrag von R2C2o »

Hallo
Ich sitze schon einige Zeit an dem selben Problem.
Bei meiner Recherche habe ich WHEN_BEEP und IF_Sound schon ausprobiert, aber das hat acuh nciht so richtig funktioniert, da ich die Soundausgabe selber mit einer Wenn Abfrage steuern möchte und diese nicht in der Funktion integriert sein soll. Daher PLAYON. 8)

Ich möchte eine Tabelle für eine Inventur benutzen.
Wenn ein Artikel eingescannt wird, wird er über Sverweis in einer anderen Tabelle gesucht und über Zählenwenn addiert.

Die gewonnenen Daten werden dann in anderen Spalten ausgewertet.

Es soll ein Fehlerton ertönen, wenn er den Artikel nicht findet, oder aber die Anzahl ansagen.
Es funktioniert auch fast mit dieser Formel.

=WENN(A3>0;WENN(B3="Nicht vorhanden";PLAYON(1;"C:\...\template\pluck.wav");PLAYON(1;VERKETTEN("C:\...\template\";C3;".wav")));"")
( Verketten funktioniert hier sehr gut, da ich alle möglichen Zahlen als Wav- File in dem Ordner gespeichert habe).

Ich habe bereits versucht das Makro PLAYON ( Quasi von XP zu WIN10) anzupassen. Aber da kenne ich mich nicht gut genug aus und weiss ich nicht wie ich es für WIn 10 und den WMplayer richtig anpasse. Scheinbar gibt es ja mplay32.exe nicht mehr für neuere WIn Versionen.

Der Fehler, den ich jetzt habe ist der : Es werden alle Werte von vorn wieder abgespielt und nicht nur der aktuelle eingegebene Wert.

Im Code vom Makro habe ich die Pfade für den Player angepasst

FUNCTION PLAYON(optional repeats as integer, optional SoundFile as string) 'wie oft, welche Tonsequenz
if IsMissing (SoundFile) Then soundfile = "C:\Users\rco\AppData\Roaming\OpenOffice\4\user\template\pluck.wav"
if IsMissing (repeats) Then repeats = 1
playme = ConvertToUrl ("C:\Program Files (x86)\Windows Media Player\wmplayer.exe")
for i=1 to repeats
Shell(playme, 2, " /play /close /new " & SoundFile, 0)
wait 1000 ' ggf. erhöhen wenn Tonsequenz länger als 1 Sekunde
next
End FUNCTION

Meine Fragen :?: :?: :?:
- gibt es mittlerweile einen besseren Ansatz z.B. quasi schon ein Open Office eigene Funktion?
oder gibt es einen Weg mplay32.exe einfach zu installieren ( Quasi eine alten XP -Mediaplayer),
oder sollte ich ein anderes Programm nutzen in dem Makro PLAYON,
bzw wo ist der Fehler - kann mann die Zeile shell(playme, 2, " /play /close /new " & SoundFile, 0) für den wmplayer 12 anpassen.

Ich hoffe es kann mir jemand helfen bei dem Problem.
Schon mal vielen Dank im vorraus. :-P

Ich nutze Open Office 4.1.10 und WIN 10

Dufte Grüße Ron
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: mp3 abspielen bei bestimmten wert

Beitrag von Hiker »

Natürlich kann man den Shell() Befehl anpassen.

Einige mogliche Kandidaten findest Du hier:
https://stackoverflow.com/questions/156 ... mmand-line

Ich schätze Dein Hauptkriterium sollte automatisches schliessen nach abspielen und evtl verstecken der Oberfläche sein...

(VLC bietet wohl ein cVLC unter Linux, ob das auch unter Win10 dabei ist, habe ich nicht kontrolliert.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: mp3 abspielen bei bestimmten wert

Beitrag von F3K Total »

Moin,
ich habe hier ein Makro das ohne externe Programme auskommt, daher
- gibt es mittlerweile einen besseren Ansatz z.B. quasi schon ein Open Office eigene Funktion?
JA! Aber nicht mittelweile sondern schon immer.
Hier der Code, habe ich gerade unter W10 ausprobiert, das Soundfile MySound.mp3 liegt im gleichen Ordner wie meine Calcdatei und wird sauber abgespielt:

Code: Alles auswählen

global oPlayer1
global bInit

Sub S_InitSounds
     if bInit then
         S_Start_New
         exit sub
     endif
     sUrlSound = F_get_Sound_URL("MySound.mp3")
     dim oPlayer as Object
     If GetGuiType() = 1 Then
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_DirectX")
     Else
         oSounMgr = CreateUnoService("com.sun.star.media.Manager_GStreamer")
     End If
     If NOT IsNull(oSounMgr) Then
        If fileexists(sUrlSound) Then        
            oPlayer1 = oSounMgr.createPlayer(sUrlSound)
            oPlayer1.setPlaybackLoop(False)
            oPlayer1.setMediaTime(0.0)
            oPlayer1.start()
            bInit = true 'nach dem ersten Abspielen true -> beim den nächsten Durchlauf wird kein neuer Player initialisiert, sondern S_Start_New aufgerufen.
        End If
     End If
End Sub

function F_get_Sound_URL(sSoundname)
    sFolderUrl = Replace(ThisComponent.URL, ThisComponent.Title,"")'Bestimmung des aktuellen Verzeichnisses
    F_get_Sound_URL = sFolderUrl & sSoundname
end function


sub S_Start_New
    oPlayer1.setMediaTime(0.0)
    oPlayer1.start()
end sub
Jetzt musst du Makro nur noch nach dem Scannen auslösen und das gewünschte Soundfile übergeben.
Viel Erfolg
Solltest du nicht weiterkommen, lade deine Datei, ggf. verfremdet, hier hoch.

Gruß R
Antworten