maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Development (https://talk.maemo.org/forumdisplay.php?f=13)
-   -   API to play sound preview (https://talk.maemo.org/showthread.php?t=49909)

nicolai 2010-04-13 13:09

API to play sound preview
 
Hi,

is there a simple API to play a short part of a sound file.
I need this to play a sound preview, the user sees a list
of sound files and everytime he selects another file, I want
to play some seconds from this file.
(Just like the ringtone selector in the profiles settings dialog)

regards nicolai

noobmonkey 2010-04-13 13:42

Re: API to play sound preview
 
do a search on gstreamer tools - i'm pretty sure it should be able to do it
I'm thinking allong th elines of a script that

# Create the player_name sink
player_name = gst.element_make_factory(“playbin”, “Multimedia Player”)
# Create the fake video sink
fake_video_sink = gst.element_make_factory(“fakesink”, “Fake sink for Videos”)
#Add the fake video sink to the player
player_name.set_property(“videosink”, fake_video_sink)
#Set the file
player_name.set_property(“uri”, “file:///home/peter/mymusic.mp3”)
#Set the State
player_name.set_state(gst.PLAYING)
#Play the file
.....
#After x seconds run gst.STATE_PAUSED or gst.STATE_NULL — Used to stop file
.......


Pretty sure you can use self.time_format = gst.Format(gst.FORMAT_TIME) to figure out where to start / stop too...

nicolai 2010-04-13 14:12

Re: API to play sound preview
 
Thank you,

this is python code, right?
I need this for a gtk program written in c.
I already found some gstreamer code snippets, but
dont know how much code is needed to initialize and
use gstreamer. I hoped there were a simple API
preferable something in the hildon framework.

nicolai

nicolai 2010-04-17 10:51

Re: API to play sound preview
 
Thank you again noobmonkey,

this hint was actually more helpful than I thought.
Here is a short code snippets how to play a sound
with gstreamer in C.

Code:

#include <stdlib.h>
#include <gst/gst.h>

// build with gcc -o sound_player sound_player.c $(pkg-config --cflags --libs gstreamer-base-0.10)
int
main (int argc, char *argv[])
{
  gst_init (&argc,&argv);
  GstElement *player;
  GMainLoop* loop;
  loop = g_main_loop_new (NULL, FALSE);
  if (argc != 2) {
    g_print ("usage: %s <audio filename-uri (file:///fullpath/name.mp3)>\n", argv[0]);
    exit (-1);
  }
  player = gst_element_factory_make ("playbin2", "Multimedia Player");
  g_object_set (G_OBJECT (player), "uri", argv[1], NULL);
  g_assert (player != NULL);
  gdouble v = 0.5;
  g_object_set(player, "volume", v);
  int ret = gst_element_set_state (player, GST_STATE_PLAYING);
  g_main_loop_run(loop);
  exit (0);
}


bingomion 2012-08-24 10:27

Re: API to play sound preview
 
Hello,
Does anyone know a commandline exe to play a wav that pulse or silences the current media player?

I had a look at osso-af-utils.. but it doesn't make sense to me what these exe's do.
Looks like espeaktime uses PulseAudio properties via the PULSE_PROP env var.

espeaktime-now.sh:
export PULSE_PROP="module-stream-restore.id=x-maemo-applet-profiles event.id=ringtone-preview"
espeak -w $fname "${@}"
play-sound $fname
rm -f $fname

This doesn't stop/silence the current audio and plays over it


All times are GMT. The time now is 03:31.

vBulletin® Version 3.8.8