media_player.c
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  * media_player.c - libvlc smoke test
  3.  *
  4.  * $Id: 54f98cdeaae891ad730e7fd05ce16543cdfb1b05 $
  5.  */
  6. /**********************************************************************
  7.  *  Copyright (C) 2007 Rémi Denis-Courmont.                           *
  8.  *  This program is free software; you can redistribute and/or modify *
  9.  *  it under the terms of the GNU General Public License as published *
  10.  *  by the Free Software Foundation; version 2 of the license, or (at *
  11.  *  your option) any later version.                                   *
  12.  *                                                                    *
  13.  *  This program is distributed in the hope that it will be useful,   *
  14.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of    *
  15.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.              *
  16.  *  See the GNU General Public License for more details.              *
  17.  *                                                                    *
  18.  *  You should have received a copy of the GNU General Public License *
  19.  *  along with this program; if not, you can get it from:             *
  20.  *  http://www.gnu.org/copyleft/gpl.html                              *
  21.  **********************************************************************/
  22. #include "test.h"
  23. static void test_media_player_play_stop(const char** argv, int argc)
  24. {
  25.     libvlc_instance_t *vlc;
  26.     libvlc_media_t *md;
  27.     libvlc_media_player_t *mi;
  28.     const char * file = test_default_sample;
  29.     log ("Testing play and pause of %sn", file);
  30.     libvlc_exception_init (&ex);
  31.     vlc = libvlc_new (argc, argv, &ex);
  32.     catch ();
  33.     md = libvlc_media_new (vlc, file, &ex);
  34.     catch ();
  35.     mi = libvlc_media_player_new_from_media (md, &ex);
  36.     catch ();
  37.     libvlc_media_release (md);
  38.     libvlc_media_player_play (mi, &ex);
  39.     catch ();
  40.     /* Wait a correct state */
  41.     libvlc_state_t state;
  42.     do {
  43.         state = libvlc_media_player_get_state (mi, &ex);
  44.         catch ();
  45.     } while( state != libvlc_Playing &&
  46.              state != libvlc_Error &&
  47.              state != libvlc_MediaPlayerEndReached );
  48.     assert( state == libvlc_Playing || state == libvlc_MediaPlayerEndReached );
  49.     libvlc_media_player_stop (mi, &ex);
  50.     catch ();
  51.     libvlc_media_player_release (mi);
  52.     catch ();
  53.     libvlc_release (vlc);
  54.     catch ();
  55. }
  56. static void test_media_player_pause_stop(const char** argv, int argc)
  57. {
  58.     libvlc_instance_t *vlc;
  59.     libvlc_media_t *md;
  60.     libvlc_media_player_t *mi;
  61.     const char * file = test_default_sample;
  62.     log ("Testing play and pause of %sn", file);
  63.     libvlc_exception_init (&ex);
  64.     vlc = libvlc_new (argc, argv, &ex);
  65.     catch ();
  66.     md = libvlc_media_new (vlc, file, &ex);
  67.     catch ();
  68.     mi = libvlc_media_player_new_from_media (md, &ex);
  69.     catch ();
  70.     libvlc_media_release (md);
  71.     libvlc_media_player_play (mi, &ex);
  72.     catch ();
  73.     /* Wait a correct state */
  74.     libvlc_state_t state;
  75.     do {
  76.         state = libvlc_media_player_get_state (mi, &ex);
  77.         catch ();
  78.     } while( state != libvlc_Playing &&
  79.              state != libvlc_Error &&
  80.              state != libvlc_MediaPlayerEndReached );
  81.     assert( state == libvlc_Playing || state == libvlc_MediaPlayerEndReached );
  82.     libvlc_media_player_pause (mi, &ex);
  83.     assert( libvlc_media_player_get_state (mi, &ex) == libvlc_Paused );
  84.     catch();
  85.     libvlc_media_player_stop (mi, &ex);
  86.     catch ();
  87.     libvlc_media_player_release (mi);
  88.     catch ();
  89.     libvlc_release (vlc);
  90.     catch ();
  91. }
  92. int main (void)
  93. {
  94.     test_init();
  95.     test_media_player_play_stop (test_defaults_args, test_defaults_nargs);
  96.     test_media_player_pause_stop (test_defaults_args, test_defaults_nargs);
  97.     return 0;
  98. }