LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 657|回复: 1

有没有linux下的网络收音机?

[复制链接]
发表于 2004-5-18 16:15:39 | 显示全部楼层 |阅读模式
好象没有。不过realone可以收到的。但还是不方便。哪位高手指点一下该怎么实现一个?
 楼主| 发表于 2004-5-18 18:43:47 | 显示全部楼层


  1. #include "nrt.h"
  2. static xine_t *xine;
  3. static xine_stream_t       *stream;
  4. static xine_audio_port_t   *ao_port;
  5. static xine_event_queue_t  *event_queue;
  6. static int                  running = 1;
  7. xine_post_out_t *s;
  8. static void event_listener(void *user_data, const xine_event_t *event) {
  9.           switch(event->type) {
  10.             case XINE_EVENT_UI_PLAYBACK_FINISHED:
  11.                 running = 0;
  12.                     break;
  13.              case XINE_EVENT_PROGRESS:
  14.                  {
  15.                 xine_progress_data_t *pevent = (xine_progress_data_t *) event->d
  16. ata;
  17.                 printf("%s [%d%%]\n", pevent->description, pevent->percent);
  18.                   }
  19.                    break;
  20.       }
  21. }

  22. int play(char *argv)
  23. {
  24.         char configfile[1024];
  25.         char *ao_driver="auto";
  26.         xine=xine_new();
  27.         sprintf(configfile,"%s","/home/neil/.xine/config");
  28.         xine_config_load(xine,configfile);
  29.         xine_init(xine);

  30.         ao_port=xine_open_audio_driver(xine,ao_driver,NULL);
  31.         
  32.         stream=xine_stream_new(xine,ao_port,NULL);

  33.         event_queue=xine_event_new_queue(stream);
  34.         xine_event_create_listener_thread(event_queue,event_listener,NULL);

  35.         if(!xine_open(stream,argv)||!xine_play(stream,0,0)){
  36.                 printf("Cant play\n");
  37.                 return -1;
  38.         }

  39.         while(running){
  40.                 s=xine_get_video_source(stream);
  41.                 xine_post_wire_audio_port(s,ao_port);
  42.         }

  43.         xine_close(stream);
  44.         xine_event_dispose_queue(event_queue);
  45.         xine_dispose(stream);
  46.         xine_close_audio_driver(xine,ao_port);
  47.         xine_exit(xine);

  48.         return 0;
  49. }

  50.         
  51. main(int argc,char **argv)
  52. {
  53.         play(argv[1]);
  54. }
  55. gcc nrt.c -I/usr/X11R6/include `xine-config --cflags`  `xine-config --libs` -lX11 -lm -pthread  
  56. neil@linux current $ ./a.out rtsp://a247.r.akareal.net/live/D/247/2110/v001/reflector:48984
  57. Buffering... [0%]
  58. Buffering... [4%]
  59. Buffering... [8%]
  60. Buffering... [12%]
  61. Buffering... [18%]
  62. Buffering... [22%]
  63. Buffering... [26%]
  64. Buffering... [32%]
  65. Buffering... [36%]
  66. Buffering... [40%]
  67. Buffering... [46%]
  68. Buffering... [50%]

  69. neil@linux current $
复制代码

buffering了半天,就是不播放,倒是可以放mp3。怎么回事阿?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表