Schrift
[thread]6581[/thread]

System-Sound: suche Modul oder...



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
polkana
 2004-12-19 12:30
#50096 #50096
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!

bin wieder auf der Suche irgendeine Hilfe...
Allso ich suche eine Möglichkeit ein SytemSound(mit dem Lautsprecher, der im Rechner eingebaut ist) mit Perl zu abspielen... Allso erst ist egall, wie der pipt(Frequenz), brauche eine sehr einfachste Einleitung.

Ach ja.. Die Betriebsztem ist FreeBSD. Allso Unix.
This is perl, v5.6.1 built for i386-freebsd

Danke
Grüß Alexander.\n\n

<!--EDIT|polkana|1103452420-->
ptk
 2004-12-20 12:40
#50097 #50097
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei FreeBSD gibt es das Device /dev/speaker. Allerdings musst du den Kernel dafuer neu compilieren (oder gibt es schon ein Kernel-Modul dafuer?).
polkana
 2004-12-21 12:43
#50098 #50098
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
# ls /dev/speaker
/dev/speaker

Ja es ist da... und wie kann ich das nutzen? :blush:
Im Kernel gibt's keine Name mit "speaker" Bezeichnung... so muss ich auch erstellen?
ptk
 2004-12-21 22:44
#50099 #50099
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Siehe "man speaker".
In der Kernel-Config muss
Code: (dl )
pseudo-device speaker

eingetragen sein. Die Manpage beschreibt auch, wie man das Device nutzt. Ein kurzes Beispiel, ungestest, und ausnahmsweise in perl, obwohl man es auch mit einem einfachen "echo" machen koennte:
Code: (dl )
1
2
3
open(SPEAKER, ">/dev/speaker") or die $!;
print SPEAKER "GEEFDDCDEFGGG"; # Haenschen Klein, ohne Tonlaenge
close SPEAKER;
polkana
 2004-12-22 11:22
#50100 #50100
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Siet sogar ganz einfach aus... :)
Dann werde sofort versuchen ...

Danke!
ptk
 2004-12-22 11:40
#50101 #50101
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei FreeBSD gibt es noch das Programm spkrtest, welches in Perl geschrieben ist und einige Melodien spielen kann, z.B. Startrek.
polkana
 2004-12-22 12:59
#50102 #50102
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja.. Allso die Aufgabe war erfollgreich erledigt!
So kann ich nun mein Netz falls die Störungen kommen sogar hören.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/local/bin/perl
my $anystablehost = 'stable-dns.org';
my @report = ("0", "0", "0", "0", "0");
open (PING, "/sbin/ping -c 5 $anystablehost|") or die $!;
$x=0;
       while (<PING>) {
               if (/.*time=(.*)\sms$/i) {
                       $x++;
               }
       }
close (PING);
if ($x > 0) {
       #print "Ping successfully tested! Netz is good!\n";
} else {
       foreach my $S (@report) {
               open(SPEAKER, ">/dev/speaker") or die $!;
               print SPEAKER "F P 1 F P 1 F P 1 F P 1 F P 1 F P 1 F P 1 F P 1 F P 1FFF";
               close SPEAKER;
       }
}

Man kann auch die SMS oder Mail sogar abshicken - dann host soll in der Netz sein und ein anderes Host testen und muss dann die "Speaker" weg ...\n\n

<!--EDIT|polkana|1103713472-->
renee
 2004-12-22 13:45
#50103 #50103
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Für Ping gibt es auch CPAN:Net::Ping
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
polkana
 2004-12-22 14:07
#50104 #50104
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn man braucht die Ergebnisse zerlegen, dann lieber Net::Ping.
In meinem Fall, so einfach Netz überprüfen, ich denke reicht paar Zeile mit open() ... na ja beim Windows muss was anderes sein. :)
ptk
 2004-12-22 14:43
#50105 #50105
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich habe uebrigens dieses allgemeine Alarm-Skript zum Piepen (bitte den Code entschuldigen, er stand urspruenglich aus perl4-Zeiten :-)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env perl

$beeps=$count=3;
$from=80;
$to=440;
$step=30;

for ($i = 0; $i <= $#ARGV; ++$i) {
$_ = $ARGV[$i];
ARGL:
{ /^0$/ && exit 0;
/^\d+/ && do { $count = $_; last ARGL; };
/^-nice(up|on)$/ && do { $niceup = 1; last ARGL; };
/^-nice(down|off)$/ && do { $nicedown = 1; last ARGL; };
/^-from$/ && do { $from = $ARGV[++$i]; last ARGL; };
/^-to$/ && do { $to = $ARGV[++$i]; last ARGL; };
/^-step$/ && do { $step = $ARGV[++$i]; last ARGL; };
print "usage: $0 [-niceup|-niceon] [-nicedown|-niceoff] [num_of_beeps]
default number of beeps: $beeps
by Slaven Rezic (eserte\@cs.tu-berlin.de), 14-05-1993
";
exit 0;
}
}

$count = $beeps if !defined $count;

eval '
sub try_x11_beep {
use X11::Protocol;
my $x = new X11::Protocol;
die "Does not work well with VNC"
if ($x->{"vendor"} =~ /AT&T Laboratories Cambridge/ ||
$x->{"vendor"} =~ /The Olivetti & Oracle Research Laboratory/);
my %old_settings = $x->GetKeyboardControl;

my $test;
if ($nicedown) {
($to, $from) = ($from, $to);
$step = -$step;
$test = sub { $_[0] >= $to };
} else {
$test = sub { $_[0] <= $to };
}
for(my $pitch=$from; $test->($pitch); $pitch+=$step) {
$x->ChangeKeyboardControl(bell_pitch => $pitch,
bell_percent => 50);
$x->Bell(10);
select(undef,undef,undef,0.05);
}

$x->ChangeKeyboardControl(bell_percent => $old_settings{bell_percent},
bell_pitch => $old_settings{bell_pitch},
bell_duration => $old_settings{bell_duration},
);
}
';
#warn $@ if $@;

if ($niceup || $nicedown) {
eval 'try_x11_beep()';
exit(0) if (!$@);
#warn $@ if $@;
$count = $beeps;
}

$| = 1; # flush output
for($i=0; $i<$count; $i++) {
print "\a";
select(undef, undef, undef, 0.2); # sleep 0.2 secs
}


Mit alarm -niceup oder alarm -nicedown wird die Tonerzeugung mit dem X11-Beep gemacht.
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2004-12-19 12:30.