ฉันจะรับ rhythmbox เพื่อดูว่าอัลบั้มต่าง ๆ ที่ชื่อเดียวกันต่างกันได้อย่างไร


8

ฉันมีเพลงฮิตที่ยิ่งใหญ่ที่สุดโดยลูกหลานและเพลงฮิตที่ยิ่งใหญ่ที่สุดโดยราชินีในห้องสมุด Rhythmbox ของฉัน เมื่อฉันเรียงลำดับตามอัลบั้มดูเหมือนว่า:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะบอกให้รับ rhythmbox เพื่อจัดเรียงตามอัลบั้มในลักษณะที่ไม่ได้แทรกอัลบั้มโดยศิลปินต่าง ๆ ที่มีชื่อเดียวกันได้อย่างไร


2
ฉันไม่ได้ตระหนักถึงวิธีการทำเช่นนี้ แต่เป็นคำถามที่ดีและฉันอยากรู้อยากเห็นตัวเองถ้านี้สามารถแก้ไขได้ฉันขอแนะนำให้คุณส่งคำถามนี้ไปยังนักพัฒนา Rhythmbox เว็บไซต์ของพวกเขาอยู่ที่นี่ในขณะที่พวกเขา ' จะสามารถบอกวิธีที่จะทำถ้ามันใช้งานได้หรือบอกคุณไม่ได้และคุณสามารถแนะนำมันให้เป็นส่วนเสริมในการเปิดตัวในอนาคตและมีส่วนทำให้มันเป็นเครื่องเล่นเพลงที่ดีกว่า;)
Oyibo

คำตอบ:


4

rhythmbox ไม่มีความสามารถในการแยกความแตกต่างระหว่างอัลบั้ม "ฮิตที่ยิ่งใหญ่ที่สุด" ที่ต่างออกไปจากกล่องเพราะมันถือว่าชื่ออัลบั้มเป็นตัวระบุที่ไม่ซ้ำกัน

เราครอบคลุมทั้งชื่ออัลบั้มและศิลปินอัลบั้มเป็นตัวระบุที่ไม่เหมือนใครผ่านทาง rhythmbox plugin cover-browser

Imgur

ดังที่แสดง - ศิลปินสองคนที่มีชื่อเพลง "ฮิตที่ยิ่งใหญ่ที่สุด" เดียวกัน แต่อัลบั้มจะแสดงแยกต่างหากเนื่องจากทั้งสองอัลบั้มเป็นศิลปินที่แตกต่างกัน

คุณควรทราบ - เมื่อริปซีดีบ่อยครั้งที่ศิลปินอัลบั้มไม่ได้ริปและเว้นว่างไว้

ที่แย่ยิ่งกว่านั้นสำหรับอัลบั้มหลายศิลปิน (การรวบรวม) ทั้งฟิลด์ศิลปินอัลบั้มและศิลปินก็ยังว่างเปล่า ดังนั้นคุณสามารถเหลือสองอัลบั้มที่มีชื่อเหมือนกันทั้งหมด

เคล็ดลับที่นี่คือการเลือกแทร็กทั้งหมดสำหรับอัลบั้มคลิกขวาและเลือกคุณสมบัติจากนั้นกรอกข้อมูลลงในฟิลด์ศิลปินอัลบั้มเพื่อให้เป็นเอกลักษณ์

ป้อนคำอธิบายรูปภาพที่นี่

ดูลิงก์ด้านล่างสำหรับคำแนะนำในการติดตั้ง

คำถามที่เชื่อมโยง:


2

ฉันได้เห็นปัญหานี้ในระบบที่หลากหลายและมีผู้เล่นที่แตกต่างกันและวิธีเดียวที่ฉันได้มาคือการตั้งชื่ออัลบั้มที่นำหน้าโดยศิลปิน

ตัวอย่างเช่น:

"Red Hot Chilli Peppers Greatest Hits" แทนที่จะเป็น "Greatest Hits"

ฉันรู้ว่ามันทำงานได้เยอะ แต่ถ้าใครมีวิธีที่ดีกว่าฉันจะชอบที่จะได้ยิน


ฉันได้รับ 2 downvote สำหรับคำตอบของฉันซึ่งฉันคิดว่าน่างงเมื่อพิจารณาในขณะที่ฉันเป็นเพียงความมั่นใจในการบรรลุสิ่งที่ถูกถามในคำถาม ตอบว่ามันเป็นไปไม่ได้เป็นเรื่องปกติ แต่ฉันได้เสนอทางเลือกที่ใช้ได้
CoalaWeb

การเปลี่ยนชื่ออัลบั้มเป็นสิ่งที่ไม่ถูกต้องไม่ใช่ทางออกสำหรับทุกคน มันเป็นวิธีการแก้ปัญหาที่มีโอกาสมากที่จะทำลายเนื่องจากทำให้ชื่ออัลบั้มไม่ถูกต้อง ทุกคนที่ใช้เครื่องมือใด ๆ ที่แก้ไขข้อมูลเมตาโดยอัตโนมัติจะมีการเปลี่ยนแปลงดังกล่าวแทนที่ คำตอบของคุณยังเชิญให้อภิปรายเพิ่มเติม คำตอบที่ถูกต้องเพียงข้อเดียวคือปัจจุบันนี้เป็นข้อบกพร่องที่ไม่สามารถใช้งานได้และจะต้องรายงานเช่นนี้และแก้ไขต้นน้ำ
dobey

ฉันไม่เห็นด้วยที่ฉันใช้ระบบนี้มานานหลายปีและเป็นวิธีแก้ปัญหาที่ใช้งานได้ในสถานการณ์ปัจจุบัน คุณทำงบกวาดเช่น "คำตอบที่ถูกต้องเท่านั้น" ซึ่งก็คือการส่งรายงานข้อผิดพลาดที่มากกว่าที่จะใช้เวลาเป็นเดือนหรือเป็นปีที่จะใช้ดังนั้นฉันเสนอทางเลือกในขณะที่กระบวนการนี้เกิดขึ้น (ฉันไม่ได้บังคับ ทุกคนที่จะใช้มัน) ความคิดเห็นดั้งเดิมของฉันแสดงให้เห็นว่าฉันรู้สึกว่าการลงมติเชิงลบสองครั้งไม่ได้รับการรับประกันโปรดอย่าโหวตให้กับคำตอบของฉัน แต่มันแตกต่างกันมากในการลบ
CoalaWeb

2

คุณไม่สามารถทำได้ใน Rhythmbox อย่างไรก็ตามฉันคิดว่ามันเป็นข้อผิดพลาดที่เกิดขึ้น คุณควรเปิดบั๊กที่เกี่ยวกับต้นน้ำหากยังไม่ได้เปิด สิ่งที่ควรทำคือเรียงลำดับตามอัลบั้มจากนั้นเป็นศิลปินอัลบั้มจากนั้นเป็นศิลปินจากนั้นใส่หมายเลขดิสก์แล้วตามหมายเลขแทร็คเมื่อคุณเรียงลำดับตามอัลบั้ม อย่างไรก็ตามขณะนี้ยังไม่ได้ทำเช่นนี้


2

เลือกแทร็กทั้งหมดจากอัลบั้มคลิกขวาเลือกคุณสมบัติ อย่าเปลี่ยนแท็กศิลปินหรืออัลบั้ม ตั้ง "ศิลปินอัลบั้ม" หากคุณต้องการหรือคลิกที่แท็บ "การเรียงลำดับ" ที่นี่คุณสามารถตั้งค่าศิลปินและแท็กอัลบั้มที่จะไม่แสดง แต่จะใช้สำหรับการเรียงลำดับโดยเฉพาะ หากคุณตั้งค่า "ลำดับการเรียงอัลบั้ม" เป็น "ยอดนิยมสูงสุด 1" ​​และตั้งเป็น "ยอดนิยมสูงสุด 2" สำหรับอัลบั้มอื่นพวกเขาจะยังคงแสดงเป็น "ยอดเยี่ยมที่สุด" ในไลบรารี แต่จะเรียงลำดับ เป็นอัลบั้มแยกต่างหาก ทางออกที่ดีกว่าคือเปลี่ยนฟิลด์ "เรียงลำดับศิลปิน" เป็นชื่อศิลปินที่เกี่ยวข้อง นี่เป็นทางออกที่ดีสำหรับอัลบั้มที่มีศิลปินหลายคน

คุณสามารถใช้สิ่งนี้หากคุณต้องการเรียงลำดับอัลบั้มตามจังหวะเนื่องจาก Rhythmbox ไม่มีคุณสมบัติ "อัลบั้มต่อปี" ที่ฉันเคยเห็นใน iTunes

การจัดเรียงห้องสมุดของคุณโดยใช้หัวข้อ "ศิลปิน" แทนที่จะเป็น "อัลบั้ม" จะช่วยแก้ปัญหานี้ได้ง่ายขึ้น อัลบั้มของคุณจะยังคงถูกจัดเรียงตามลำดับตัวอักษรโดยเรียงตามลำดับและอัลบั้มโดยศิลปินเดียวกันจะถูกจัดกลุ่มเข้าด้วยกัน ด้วยวิธีนี้ลูกหลานและราชินีก็ไม่ได้อยู่ใกล้กันเลยแม้แต่น้อย

ฉันรู้ว่าคำถามนี้ค่อนข้างเก่า แต่ดูเหมือนไม่มีใครโพสต์โซลูชันนี้ หวังว่าฉันช่วยใครซักคน


0

ฉันเป็นนักพัฒนาและเพิ่ม 'จัดเรียงตามศิลปิน' เป็น 'rhythmdb_query_model_album_sort_func' - ดูด้านล่าง

หากคุณเป็นผู้ใช้ปลายทางสามารถเตรียมระบบของคุณสำหรับการสร้างแพ็คเกจแก้ไขซอร์สสร้างแพ็คเกจใหม่ติดตั้งจากนั้นไปข้างหน้า! ;-)

โปรแกรมปะแก้นี้ทำกับ rb v2.97 เวอร์ชั่นใหม่อาจมีหมายเลขบรรทัดที่ต่างกัน (ยังไม่ได้ตรวจสอบ) แต่โดยพื้นฐานแล้วรหัสควรเหมือนกัน

Description: sort albums with same title first by artist, remove unnecesary space and tab
--- rhythmbox-2.97.orig/rhythmdb/rhythmdb-query-model.c
+++ rhythmbox-2.97/rhythmdb/rhythmdb-query-model.c
@@ -2192,7 +2192,7 @@ rhythmdb_query_model_drag_data_received
        return FALSE;
 }

-/* 
+/*
  * determines whether reordering is possible by checking up
  * the chain for a model with a sort function set.
  */
@@ -2921,7 +2921,7 @@
  * @data: nothing
  *
  * Sort function for sorting by album.  Sorts by album, then
- * disc number, then track number, then title.
+ * artist, then disc number, then track number, then title.
  *
  * Returns: result of sort comparison between a and b.
  */
@@ -2959,6 +2959,31 @@ rhythmdb_query_model_album_sort_func (Rh
        if (ret != 0)
                return ret;

+       /* Then by artist */
+        a_val = rhythmdb_entry_get_string (a, RHYTHMDB_PROP_ARTIST_SORTNAME_SORT_KEY);
+        if (a_val[0] == '\0') {
+                a_val = rhythmdb_entry_get_string (a, RHYTHMDB_PROP_ARTIST_SORT_KEY);
+        }
+        b_val = rhythmdb_entry_get_string (b, RHYTHMDB_PROP_ARTIST_SORTNAME_SORT_KEY);
+        if (b_val[0] == '\0') {
+                b_val = rhythmdb_entry_get_string (b, RHYTHMDB_PROP_ARTIST_SORT_KEY);
+        }
+
+        if (a_val == NULL) {
+                if (b_val == NULL)
+                        ret = 0;
+                else
+                        ret = -1;
+        } else if (b_val == NULL)
+                ret = 1;
+        else
+                ret = strcmp (a_val, b_val);
+
+        if (ret != 0)
+                return ret;
+        /*else
+                return rhythmdb_query_model_album_sort_func (a, b, data); */
+
        /* Then by disc number (assume 1 if non-existent) */
        a_num = rhythmdb_entry_get_ulong (a, RHYTHMDB_PROP_DISC_NUMBER);
        b_num = rhythmdb_entry_get_ulong (b, RHYTHMDB_PROP_DISC_NUMBER);
@@ -3168,7 +3193,7 @@
                                    gpointer data)
 {
        gulong a_val, b_val;
-       
+
        if (rhythmdb_entry_is_lossless (a)) {
                if (rhythmdb_entry_is_lossless (b))
                        return rhythmdb_query_model_location_sort_func (a, b, data);

คำแนะนำเพิ่มเติมเกี่ยวกับการสร้างแพ็คเกจที่นี่และที่นี่


1
ยินดีต้อนรับสู่ถาม Ubuntu! ;-)คุณสามารถอธิบายรายละเอียดว่าผู้ใช้ปลายทางสามารถเปิดใช้งานฟังก์ชั่นนี้สำหรับการแจกจ่ายของเขาได้อย่างไร? (คิดว่าผู้ใช้ปลายทาง)
Fabby

ครั้งต่อไปอย่าเสนอการเปลี่ยนแปลงเหล่านี้ในฐานะผู้ใช้ที่ไม่ระบุชื่อ แต่เข้าสู่ระบบแล้วแก้ไขดังนั้นจึงไม่จำเป็นต้องผ่านกระบวนการตรวจสอบ ตอนนี้คุณโชคดีที่ได้ผู้วิจารณ์คนเดียวกันสองครั้งติดต่อกัน แต่มีพวกเราสักสองสามคนและครั้งต่อไปคุณจะไม่โชคดีมาก! : P
Fabby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.