LinuxSir.cn,穿越时空的Linuxsir!

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

利用电视卡的摇控器摇控xine ,mplayer,tvtime.

[复制链接]
发表于 2005-12-13 16:52:37 | 显示全部楼层 |阅读模式
相信现在比较多的朋友都用上了电视卡了。一般电视卡都配一个红外线遥控。

在linux下我们可以好好利用这个红外功能为我们服务。

主要为了实现的功能是用遥控器遥控xine mplayer tvtime等软件.其它软件大家可以自己试。

硬件环境:
cpu:AMD xp2500+
内存:kinmax DDR400 512 X 2
硬盘:希捷120G
电视卡:中恒视讯S-TV 7130芯片

软件环境:
系统:FC3
内核:2.8.11.8
软件:xine-lib 1.1.0
     mplaye 1.0pre7try2
     tvtime 1.0.1
     input-20051128-133821.tar.gz //打包在附件里。

安装input-20051128-133821.tar.gz
tar -zxvf input-20051128-133821.tar.gz
cd input
make
make install

先确定内核打开了Device Drivers"-->"Input device support"-->"Event interface"的选项。
加载电视卡模块:
modprobe tuner
modprobe saa7134 card=30 tuner=23
加载电视卡的参数 card是指你电视卡的型号.详细资料可以查看内核文件夹下/Documentation/video4linux/CARDLIST.saa7134
card的参数直接影响到你的红外接收能不能工作。如果你的电视卡的型号不在清单里你就只能每个参数都试一遍置到你的红外可以正常工作。

测试红外接收:
ls /dev/input
如果evdev模块加载正常就会显示event0  event1  event2  event3  event4 ...等的信息。
我们利用 input工具测试我们的红外接口
input-events "输入设备”
输入设备是指/dev/input下的 event0 event1等
如果是event0就输入 input-events 0
以下如此类推

[kis@kis software]$ input-events 1
/dev/input/event1
   bustype : BUS_I8042
   vendor  : 0x2
   product : 0x5
   version : 0
   name    : "ImPS/2 Generic Wheel Mouse"
   phys    : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_REL
很明显event1设备是我的鼠标

[kis@kis software]$ input-events 5
/dev/input/event5
   bustype : BUS_PCI
   vendor  : 0x1131
   product : 0x2001
   version : 1
   name    : "saa7134 IR (Elitegroup ECS TVP3"
   phys    : "pci-0000:01:09.0/ir0"
   bits ev : EV_SYN EV_KEY EV_REP
从上面name    : "saa7134 IR (Elitegroup ECS TVP3"的信息可以看出我电视卡红外接口是event5

下一步我们确认一下红外接口可以支持的按键信息
[kis@kis software]$ input-kbd 5
/dev/input/event5
   bustype : BUS_PCI
   vendor  : 0x1131
   product : 0x2001
   version : 1
   name    : "saa7134 IR (Elitegroup ECS TVP3"
   phys    : "pci-0000:01:09.0/ir0"
   bits ev : EV_SYN EV_KEY EV_REP

map: 44 keys, size: 128/192
0x0000 =  82  # KEY_KP0
0x0001 = 377  # KEY_TV
0x0002 = 368  # KEY_LANGUAGE
0x0003 = 353  # KEY_SELECT
[.....]
上面信息给出可以支持44个按键输入

这是我另一个电视卡的usb红外输入的接口event3
[kis@kis software]$ input-kbd 3
/dev/input/event3
   bustype : BUS_USB
   vendor  : 0x4b4
   product : 0x100
   version : 256
   name    : "Future  Tech Remote Control"
   phys    : "usb-0000:00:02.0-1/input0"
   uniq    : "1111111"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

bits: KEY_ESC
bits: KEY_1
bits: KEY_2
bits: KEY_3
bits: KEY_4
[....]

如果输入设备支持按键映射输出就像

0x0000 =  82  # KEY_KP0
0x0001 = 377  # KEY_TV
0x0002 = 368  # KEY_LANGUAGE
0x0003 = 353  # KEY_SELECT
[......]
如果不支持输出是以bits开头的就像

bits: KEY_ESC
bits: KEY_1
bits: KEY_2
bits: KEY_3
bits: KEY_4
[....]
//键盘映射功能大家请查看input文件夹里的readme。里面有更详细的讲解。

我们测试摇控器
[kis@kis software]$ input-events 5
/dev/input/event5
   bustype : BUS_PCI
   vendor  : 0x1131
   product : 0x2001
   version : 1
   name    : "saa7134 IR (Elitegroup ECS TVP3"
   phys    : "pci-0000:01:09.0/ir0"
   bits ev : EV_SYN EV_KEY EV_REP

waiting for events//当出现这个提示的时候就用你的摇控器对着接收器按键//
15:52:43.423668: EV_KEY KEY_LEFT pressed //这是我按摇控器的”snapshot"的输出说明摇控器该建相当键盘的KEY_LEFT
15:52:43.423669: EV_SYN code=0 value=0
15:52:43.573648: EV_KEY KEY_LEFT released
15:52:43.573649: EV_SYN code=0 value=0
15:52:46.273242: EV_KEY KEY_KP2 pressed//这是我按摇控器的"4"的输出说明摇控器该建相当键盘的KEY_KP2
15:52:46.273243: EV_SYN code=0 value=0
215:52:46.423208: EV_KEY KEY_KP2 released
15:52:46.423209: EV_SYN code=0 value=0

同过上面的输出我们可以看到摇控器上的按键是相当于键盘上的哪个按键。
到上面为止我们的电视卡摇控已经可以使用了。
接下来我们来设置一下xine mplayer和tvtime的输入

xine的设置
cd ~/.xine
touch keymap
gedit keymap
然后在根据你的需要修改例如:
# set position to 10% of current stream
SetPosition10% {
        key = 1  //我把摇控器的1设置为跳到整个电影的10% 只要按下摇控器1就跳到10%
        modifier = none
}

# set position to 20% of current stream
SetPosition20% {
        key = 2  //我把摇控器的2设置为跳到整个电影的20%
        modifier = none
}

# increment audio volume
Volume+ {
        key = Up //把up替换为你摇控器上的音量加大输入
        modifier = none
}

# decrement audio volume
Volume- {
        key = Down //把Down替换为你摇控器上的音量减小输入
        modifier = none
}
最简单的修改是用摇控器代替键盘输入key = (这里的内容用摇控器输入)
在附件我附上我的keymap供大家参考。

mplayer的设置
cd ~/.mplayer
touch input.conf
gedit input.conf
MPlayer允许你使用一个简单的config文件把任何键或按钮绑定为任何一个MPlayer控制命令。句法是键名后加命令。

例子:

##
## MPlayer input control file
##

RIGHT seek +10
LEFT seek -10
- audio_delay 0.100
+ audio_delay -0.100
q quit
> pt_step 1
< pt_step -1
ENTER pt_step 1 1
-----------------------------------
mplayer -input keylist你将得到一个完整的列表

mplayer -input cmdlist"你可以得到一个完整的已知命令的列表

# seek (int) val [(int) type=0]

搜索电影中的某处
Type 0 是以+/-val秒搜索。
Type 1 是以电影的val%搜索
# audio_delay (float) val

音频延迟val秒
# quit


在附件我附上我的input.conf供大家参考。


tvtime的设置
gedit /usr/local/tvtime/etc/tvtime/tvtime.xml (具体路径请参照你自己的安装路径)
找到以下部分修改为合适你摇控器的输入就可以。
<bind command="quit">
    <keyboard key="escape"/>
    <keyboard key="x"/>
  </bind>

  <bind command="show_menu">
    <keyboard key="F1"/>
    <keyboard key="        "/>
    <mouse button="3"/>
  </bind>

  <bind command="up">
    <keyboard key="AGEUP"/>
    <mouse button="4"/>
  </bind>
.....

在附件我附上我的tvtime.xml供大家参考。


其它软件设置的方法都差不多有兴趣大家自己测试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2005-12-14 10:59:54 | 显示全部楼层
好贴,支持!

可惜没有电视卡,不能亲手玩一下!
回复 支持 反对

使用道具 举报

发表于 2005-12-14 14:06:51 | 显示全部楼层
确实不错。支持支持。可惜俺的是电视盒子。
回复 支持 反对

使用道具 举报

发表于 2005-12-27 18:05:53 | 显示全部楼层

谢谢

你的input工具包帮我解决了一个问题。
谢谢。
回复 支持 反对

使用道具 举报

发表于 2006-5-20 09:50:44 | 显示全部楼层
为什么我在FC5中按照楼主的说法修改tvtime.xml,还是摇控不了呀?
回复 支持 反对

使用道具 举报

发表于 2006-5-28 23:14:20 | 显示全部楼层
怎么下载不了:(
回复 支持 反对

使用道具 举报

发表于 2006-5-29 00:54:52 | 显示全部楼层
可惜我没有卡
回复 支持 反对

使用道具 举报

发表于 2006-5-29 09:31:04 | 显示全部楼层
牛,收了慢慢看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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