[问题]kaffeine播放的文件名显示乱码

Totem,mplayer,sopcast,realplayer,bmp
回复
eric57
帖子: 22
注册时间: 2007-05-21 18:42

[问题]kaffeine播放的文件名显示乱码

#1

帖子 eric57 » 2007-06-06 20:20

如题!OSD显示的也是乱码。(kaffeine-xine)
搜索了本网站上所有文章,还没找到解决办法。 :( 网站上的文章多数是说字幕的问题,可是我装上就没碰到这个问题 :lol:
显示的MP3等文件名都是乱码,这个问题我搞了很久都没搞定。看过.XINE下的配置文件,也摸不着北。
哪位大侠给分析分析,给个解决问题的方向。 :P
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01

#2

帖子 xiechy » 2007-06-06 21:18

amarok开发组经过激烈辩论后,已经表决通过只支持utf8作为tag的编码。试试mutagen改编码吧。
kaffeine我不清楚,但是如果只是id3tag的话,应该和amarok一样吧~
eric57
帖子: 22
注册时间: 2007-05-21 18:42

#3

帖子 eric57 » 2007-06-06 22:07

找了所有可疑的kaffeine目录,没找到合适的配置文件。找到的/home/.../.kde /home/.../.xine下面的配置文件没tag选项 :( 。感觉kaffeine是kde桌面下的播放器,在gnome下面有点不好使。
没搞定。 :cry:
eric57
帖子: 22
注册时间: 2007-05-21 18:42

#4

帖子 eric57 » 2007-06-08 18:54

搞不定了,换成rhythmbox-gstreamer了,这个还挺稳定的。kaffeine-xine 有时会死机
ltc100
帖子: 35
注册时间: 2007-07-31 15:00

#5

帖子 ltc100 » 2007-07-31 21:43

在Magic Linux下就很正常。是汉化问题吧?又或者是因为K的程序在G环境下不能正常工作?
头像
nihui
帖子: 1746
注册时间: 2006-10-21 12:03
来自: Shanghai
联系:

#6

帖子 nihui » 2007-07-31 22:06

Magic Linux 的 kaffeine 标题乱码修复补丁: 8) 8) 8) 8)

代码: 全选

diff -u -r kaffeine-0.8.2.orig/kaffeine/src/input/audiobrowser/playlist.cpp kaffeine-0.8.2/kaffeine/src/input/audiobrowser/playlist.cpp
--- kaffeine-0.8.2.orig/kaffeine/src/input/audiobrowser/playlist.cpp	2006-09-09 09:29:55.000000000 +0800
+++ kaffeine-0.8.2/kaffeine/src/input/audiobrowser/playlist.cpp	2006-09-12 08:55:50.000000000 +0800
@@ -1468,6 +1468,7 @@
 	QString title;
 	QString artist;
 	QString album;
+	QString ext;
 
 	QTextCodec *altCodec;
 	QTextCodec *CodecUtf8;
@@ -1476,6 +1477,9 @@
 	CodecUtf8 = QTextCodec::codecForName("UTF-8");
 	//kdDebug() << "playlist: locale " << Codec->name << " index: " << m_alternateEncoding << endl;
 
+        ext = mrl.kurl().fileName();
+        ext = ext.remove(0 , ext.findRev('.') +1).lower();
+
 	for (m = 0; m < groups.count(); m++)
 	{
 		//kdDebug() << "Metainfo-Group: " << groups[m] << endl;
@@ -1491,7 +1495,10 @@
 
 			if (keys[n] == "Title")
 			{
-				title = metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace();
+				if (ext=="wma" || ext=="wmv" || ext=="asf" || ext=="rm" || ext=="rmvb" || ext=="rmm" || ext=="ra")
+				        title=mrl.kurl().fileName();
+				else
+				        title = metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace();
 				if ((!title.isEmpty()) && (title.contains(QRegExp("\\w")) > 2) && (title.left(5).lower() != "track"))
 				{
 					if ((m_useAlternateEncoding) && (CodecUtf8->heuristicContentMatch(title.ascii(), title.length()) < 0))
@@ -1509,7 +1516,10 @@
 
 			if (keys[n] == "Artist")
 			{
-				artist = (metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace());
+				if (ext=="wma" || ext=="wmv" || ext=="asf" || ext=="rm" || ext=="rmvb" || ext=="rmm" || ext=="ra")
+				        artist="";
+				else
+				        artist = (metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace());
 				if (!artist.isEmpty())
 				{
 					if ((m_useAlternateEncoding) && (CodecUtf8->heuristicContentMatch(artist.ascii(),artist.length()) < 0 ))
@@ -1525,7 +1535,10 @@
 
 			if (keys[n] == "Album")
 			{
-				album = (metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace());
+				if (ext=="wma" || ext=="wmv" || ext=="asf" || ext=="rm" || ext=="rmvb" || ext=="rmm" || ext=="ra")
+				         album="";
+				else     
+				         album = (metaGroup.item(keys[n]).value().toString().simplifyWhiteSpace());
 				if (!album.isEmpty())
 				{
 					if ((m_useAlternateEncoding) && (CodecUtf8->heuristicContentMatch(album.ascii(),album.length()) < 0 ))
diff -u -r kaffeine-0.8.2.orig/kaffeine/src/player-parts/xine-part/xine_part.cpp kaffeine-0.8.2/kaffeine/src/player-parts/xine-part/xine_part.cpp
--- kaffeine-0.8.2.orig/kaffeine/src/player-parts/xine-part/xine_part.cpp	2006-09-09 09:29:57.000000000 +0800
+++ kaffeine-0.8.2/kaffeine/src/player-parts/xine-part/xine_part.cpp	2006-09-12 08:53:52.000000000 +0800
@@ -1020,6 +1020,7 @@
 void XinePart::slotTrackPlaying()
 {
 	QString caption;
+	QString ext;
 
 	kdDebug() << "XinePart: xine is playing" << endl;
 	m_pauseButton->setChecked(false);
@@ -1038,13 +1039,16 @@
 
 	if (mrl.length().isNull()) /* no meta */
 	{
+		ext = mrl.kurl().fileName();
+                ext = ext.remove(0 , ext.findRev('.') +1).lower();
 		if ((!m_xine->getTitle().isEmpty()) && (!m_xine->getTitle().contains('/'))
 		        && (m_xine->getTitle().contains(QRegExp("\\w")) > 2) && (m_xine->getTitle().left(5).lower() != "track"))
-			mrl.setTitle(m_xine->getTitle());
+			if (ext!="wma" && ext!="wmv" && ext!="asf" && ext!="rm" && ext!="rmvb" && ext!="rmm" && ext!="ra")					mrl.setTitle(m_xine->getTitle());
 		if ((mrl.artist().isEmpty()) && (!m_xine->getArtist().isEmpty()))
-			mrl.setArtist(m_xine->getArtist());
+			if (ext!="wma" && ext!="wmv" && ext!="asf" && ext!="rm" && ext!="rmvb" && ext!="rmm" && ext!="ra")					mrl.setArtist(m_xine->getArtist());
 		if ((mrl.album().isEmpty()) && (!m_xine->getAlbum().isEmpty()))
-			mrl.setAlbum(m_xine->getAlbum());
+			if (ext!="wma" && ext!="wmv" && ext!="asf" && ext!="rm" && ext!="rmvb" && ext!="rmm" && ext!="ra")
+                            mrl.setAlbum(m_xine->getAlbum());
 		if ((mrl.year().isEmpty()) && (!m_xine->getYear().isEmpty()))
 			mrl.setYear(m_xine->getYear());
 		if ((mrl.genre().isEmpty()) && (!m_xine->getGenre().isEmpty()))
.

私人空间
附有 Magic Linux 2.1 最新开发日志~


미안하다, 사랑한다


欢迎来 #xfce-cn 中文频道~~
头像
nihui
帖子: 1746
注册时间: 2006-10-21 12:03
来自: Shanghai
联系:

#7

帖子 nihui » 2007-07-31 22:24

嗯,还有一个 kaffeine-OSD-fonts 的补丁,不过这些补丁必须 rebuild 才能用。。 :(

代码: 全选

diff -u -r kaffeine-0.8.3.orig/kaffeine/src/player-parts/xine-part/kxinewidget.cpp kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.cpp
--- kaffeine-0.8.3.orig/kaffeine/src/player-parts/xine-part/kxinewidget.cpp	2006-11-27 03:12:24.000000000 +0800
+++ kaffeine-0.8.3/kaffeine/src/player-parts/xine-part/kxinewidget.cpp	2007-01-01 10:33:08.000000000 +0800
@@ -1182,7 +1182,7 @@
 	            NULL, 10, &KXineWidget::sizeForOSDMessagesChangedCallback, this);
 
 	m_osdFontInfo = strdup(i18n("Font for OSD Messages").local8Bit());
-	m_osdFont = strdup((char*)xine_config_register_string(m_xineEngine, "osd.osd_font", "sans", m_osdFontInfo,
+	m_osdFont = strdup((char*)xine_config_register_string(m_xineEngine, "osd.osd_font", "heiti", m_osdFontInfo,
 	                   NULL, 10, &KXineWidget::fontForOSDMessagesChangedCallback, this));
 
 	/* init video driver */
.

私人空间
附有 Magic Linux 2.1 最新开发日志~


미안하다, 사랑한다


欢迎来 #xfce-cn 中文频道~~
ltc100
帖子: 35
注册时间: 2007-07-31 15:00

#8

帖子 ltc100 » 2007-08-11 0:53

LS的,是否要下载源码来安装?


说真的,汉化方面MAGIC LINUX 做得最好了。
回复