|

楼主 |
发表于 2004-5-18 18:43:47
|
显示全部楼层
- #include "nrt.h"
- static xine_t *xine;
- static xine_stream_t *stream;
- static xine_audio_port_t *ao_port;
- static xine_event_queue_t *event_queue;
- static int running = 1;
- xine_post_out_t *s;
- static void event_listener(void *user_data, const xine_event_t *event) {
- switch(event->type) {
- case XINE_EVENT_UI_PLAYBACK_FINISHED:
- running = 0;
- break;
- case XINE_EVENT_PROGRESS:
- {
- xine_progress_data_t *pevent = (xine_progress_data_t *) event->d
- ata;
- printf("%s [%d%%]\n", pevent->description, pevent->percent);
- }
- break;
- }
- }
- int play(char *argv)
- {
- char configfile[1024];
- char *ao_driver="auto";
- xine=xine_new();
- sprintf(configfile,"%s","/home/neil/.xine/config");
- xine_config_load(xine,configfile);
- xine_init(xine);
- ao_port=xine_open_audio_driver(xine,ao_driver,NULL);
-
- stream=xine_stream_new(xine,ao_port,NULL);
- event_queue=xine_event_new_queue(stream);
- xine_event_create_listener_thread(event_queue,event_listener,NULL);
- if(!xine_open(stream,argv)||!xine_play(stream,0,0)){
- printf("Cant play\n");
- return -1;
- }
- while(running){
- s=xine_get_video_source(stream);
- xine_post_wire_audio_port(s,ao_port);
- }
- xine_close(stream);
- xine_event_dispose_queue(event_queue);
- xine_dispose(stream);
- xine_close_audio_driver(xine,ao_port);
- xine_exit(xine);
- return 0;
- }
-
- main(int argc,char **argv)
- {
- play(argv[1]);
- }
- gcc nrt.c -I/usr/X11R6/include `xine-config --cflags` `xine-config --libs` -lX11 -lm -pthread
- neil@linux current $ ./a.out rtsp://a247.r.akareal.net/live/D/247/2110/v001/reflector:48984
- Buffering... [0%]
- Buffering... [4%]
- Buffering... [8%]
- Buffering... [12%]
- Buffering... [18%]
- Buffering... [22%]
- Buffering... [26%]
- Buffering... [32%]
- Buffering... [36%]
- Buffering... [40%]
- Buffering... [46%]
- Buffering... [50%]
- neil@linux current $
复制代码
buffering了半天,就是不播放,倒是可以放mp3。怎么回事阿? |
|