ฉันสามารถดูงานนำเสนอ, แชท, แชร์หน้าจอ, ทุกอย่างในการประชุม webex แต่ไม่สามารถสร้างเสียงได้ฉันมักจะได้รับ:
"อุปกรณ์เสียงไม่สามารถเข้าถึงได้ตอนนี้"
ไม่มีใครรู้ว่าเกิดอะไรขึ้น?
ขอบคุณ
ฉันสามารถดูงานนำเสนอ, แชท, แชร์หน้าจอ, ทุกอย่างในการประชุม webex แต่ไม่สามารถสร้างเสียงได้ฉันมักจะได้รับ:
"อุปกรณ์เสียงไม่สามารถเข้าถึงได้ตอนนี้"
ไม่มีใครรู้ว่าเกิดอะไรขึ้น?
ขอบคุณ
คำตอบ:
ฉันเพิ่งโพสต์คำตอบสำหรับคำถามนี้ที่http://ubuntuforums.org/showthread.php?p=11757928
แอปเพล็ต WebEx ใช้โมดูลเนทีฟที่เป็นกรรมสิทธิ์เพื่อเข้าถึงซอฟต์แวร์เสียง เป็น 32 บิตดังนั้นจึงไม่สามารถโหลดได้โดย JVM 64 บิต วิธีแก้ปัญหาปกติดูเหมือนว่าจะเรียกใช้เบราว์เซอร์ 32 บิตทุกครั้งที่คุณใช้ WebEx อีกทางเลือกหนึ่งฉันได้ทำการติดตั้งยูทิลิตี nspluginwrapper เพื่อให้คุณสามารถเรียกใช้ปลั๊กอิน Java แบบ 32 บิตจากเบราว์เซอร์ 64 บิต (ฉันได้ทดสอบกับ Firefox แล้วมันควรใช้งานกับ Chrome ได้ด้วย)
ดาวน์โหลดแหล่งข้อมูลล่าสุดสำหรับ nspluginwrapper จากhttp://nspluginwrapper.org/download/
ขยายไฟล์ (tar -xvzf) ในตำแหน่งที่สะดวก
ใช้แพตช์ต่อไปนี้กับไฟล์ npw-viewer.c:
--- npw-viewer.c 2011-06-30 23:18:57.000000000 -0400
+++ nspluginwrapper-1.4.4/src/npw-viewer.c 2012-03-11 14:09:35.104158681 -0400
@@ -5128,6 +5128,17 @@
}
handles[n_handles++] = handle;
dlerror();
+#else
+ /* Install libstdc++ for java */
+ const char libstcpp[] = "libstdc++.so.6";
+ D(bug(" trying to open standard C++ runtime '%s'\n", libstcpp ));
+ if ((handle = dlopen(libstcpp, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {
+ npw_printf("ERROR: %s\n", dlerror());
+ return 1;
+ }
+ handles[n_handles++] = handle;
+ dlerror();
+
#endif
D(bug(" %s\n", plugin_path));
if ((handle = dlopen(plugin_path, RTLD_LAZY)) == NULL) {
คุณอาจต้องใช้ไลบรารีเพิ่มเติมเพื่อทำให้งานสำเร็จ โดยเฉพาะฉันติดตั้ง:
sudo apt-get install libcurl4-nss-dev libxt-dev libgtk2.0-dev g++-multilib
YMMV
หลังจากได้รับการอ้างอิงมัน:
./configure
make
sudo make install
จากนั้นคุณจะต้องมี jre แบบ 32 บิต สามารถดาวน์โหลดได้จากเว็บไซต์ของ Oracle และติดตั้ง
ในที่สุดค้นหาไฟล์ libnpjp2.so
ในlib
ไดเรกทอรีของการติดตั้ง Java แบบ 32 บิต /usr/lib/jvm/ia32-java-6-sun/jre/lib/i386/
ฉันพบใน
ปฏิบัติ
sudo nspluginwrapper -i /usr/lib/jvm/ia32-java-6-sun/jre/lib/i386/libnpjp2.so
(หรือที่ใดก็ได้ที่ติดตั้ง Java ของคุณ)
จากนั้นให้เริ่ม Firefox ใหม่ พิมพ์ "aboutlugins" ในแถบที่อยู่ คุณควรเห็นปลั๊กอิน Java 32 บิตที่เพิ่งติดตั้งใหม่
ลองเข้าร่วมการประชุม WebEx พร้อมเสียง
ฉันรู้ว่ากระทู้นี้ค้าง แต่ฉันเพิ่งผ่าน 2 วันของการแก้ปัญหาโดย Dan Menes ทำงาน (และวิธีการของ Dan ทำงานได้) แต่มีบางขั้นตอนเพิ่มเติมที่ฉันต้องการแบ่งปันเพื่อให้ผู้อื่นไม่สูญเสีย 12 ชั่วโมงทำงานเหมือนที่ฉันทำกับ tweaks ดังนั้นเราไปที่นี่:
ก่อนอื่นฉันไม่สามารถใช้ patch ของ Dan กับคำสั่ง "patch" ได้ตามปกติ เมื่อฉันพยายามที่จะฉันได้รับข้อผิดพลาดต่อไปนี้ (ข้อผิดพลาดเดียวกันกับที่โปสเตอร์ "NW Tech" ได้รับซึ่งก็คือ:
Hunk # 1 FAILED ที่ 5128
ก่อนที่จะแก้ไขสิ่งนั้นฉันฉีก Java ที่มีอยู่ทั้งหมด - ALL! ฉันมีปัญหาว่าเมื่อฉันรัน webex ฉันไม่แน่ใจว่าติดตั้ง javas 5 หรือ 6 อันทั้ง 6 และ 7 มันใช้งานอยู่และเนื่องจากฉันไม่รู้ว่าจะแน่ใจได้อย่างไรฉันก็ฉีกจาวาทั้งหมดยกเว้น หนึ่งที่จะใช้สำหรับ webex เพื่อให้ฉันแน่ใจ คุณสามารถทำเช่นนั้นหรืออื่น ๆ ถ้าคุณรู้วิธีแน่ใจว่า firefox ใช้จาวาที่ถูกห่อของคุณตามที่อธิบายไว้ด้านล่าง หากคุณเลือกที่จะริปจาวาทั้งหมดของคุณก่อนที่ฉันจะทำฉันจะไม่รับผิดชอบต่อสิ่งที่อาจทำให้คุณเสียหาย - ฉันแค่มุ่งเน้นที่การแก้ไขปัญหา webex นี้โดยไม่มีเสียงผ่านคอมพิวเตอร์บน Ubuntu Linux และฉันต้องการแน่ใจ แน่นอนฉันใช้จาวาแบบ 32 บิตที่ห่อหุ้มดังนั้นฉันจึงฉีกจาวาอื่น ๆ ทั้งหมดเพื่อเป็นทางเลือก
ดังนั้นดำเนินการต่อ ...
นอกจากนี้ฉันใช้การกระจายล่าสุดของ JDK 1.6 (1.6.0_45) ไม่ใช่ JDK 1.7 (มันอาจทำงานได้ฉันไม่ได้ทดสอบมันไม่สนใจฉันทำกับปัญหาที่น่ารำคาญนี้ 1.6 จาวาแบบห่อ 64 บิตทำงานได้กับ webex sound ดังนั้น FINE! ฉันเสร็จแล้ว!)
ก่อนที่จะติดตั้ง Oracle Sun Java 1.6.0_45 ฉันฉีกจาวาที่มีอยู่ทั้งหมดใน Ubuntu 12.04 ของฉันโดยสมบูรณ์ ในการทำเช่นนั้นฉันใช้ขั้นตอนเหล่านี้:
sudo apt-get update
apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
sudo apt-get -y autoremove
หลังจากรันขั้นตอนเหล่านั้นฉันได้ติดตั้ง JDK 1.6.0_45 แล้วติดตั้งแทนและตรวจสอบเพื่อดูว่ามีทางเลือกอื่นเพียง 1.6.0_45 เพื่อให้แน่ใจว่าฉันได้รับจาวา 32 ห่อสำหรับเบราว์เซอร์ 64 บิตอย่างแน่นอน ต้องการ.
อย่างไรก็ตามก่อนที่ฉันจะสามารถทำสิ่งนั้นได้ฉันต้องใส่มันเข้าไปในทางเลือกอื่นซึ่งฉันก็ทำแบบนี้:
sudo ปรับปรุงทางเลือก - ติดตั้ง "/ usr / bin / java" "java" "/ usr / lib / jvm / java-6-oracle / bin / java" 1050
(ตำแหน่งของคุณของ java32 jdk6 ของคุณอาจแตกต่างกัน - นั่นคือสิ่งที่ฉันใส่ของฉัน)
Idk ความหมายของเลข 1050 - เป็น "ลำดับความสำคัญ" ฉันไม่รู้ว่าสำคัญหรือไม่ ทางเลือกของฉันดูเหมือนตอนนี้:
gstanden@Ubuntu1204:/usr/lib/mozilla/plugins$ sudo update-alternatives --config java
[sudo] password for gstanden:
There is 1 choice for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-oracle/bin/java 1050 auto mode
* 1 /usr/lib/jvm/java-6-oracle/bin/java 1050 manual mode
Press enter to keep the current choice[*], or type selection number:
gstanden@Ubuntu1204:/usr/lib/mozilla/plugins$
ดังนั้นหลังจากนอนบนมันในเช้าวันเสาร์ฉันเอาโค้ดที่บรรทัด 5128 และวางแพทช์ลงในไฟล์ด้วยตนเองเนื่องจากแพทช์มีปัญหาในการใช้มันโดยอัตโนมัติ
/home/gstanden/Downloads/nspluginwrapper-1.4.4/src/npw-viewer.c
นี่คือตัวอย่างก่อนและหลังที่แสดงให้เห็นว่าคุณต้องวางรหัสการแก้ไขอย่างไร
นี่คือความแตกต่างของ npw-viewer.c ที่แพตช์กับ npw-viewer.c ที่ไม่แพตช์:
gstanden@Ubuntu1204:~/Downloads/nspluginwrapper-1.4.4/src$ diff npw-viewer.c npw-viewer.c.bak
5129,5138c5129,5130
< #else
< /* Install libstdc++ for java */
< const char libstcpp[] = "libstdc++.so.6";
< D(bug(" trying to open standard C++ runtime '%s'\n", libstcpp ));
< if ((handle = dlopen(libstcpp, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {
< npw_printf("ERROR: %s\n", dlerror());
< return 1;
< }
< handles[n_handles++] = handle;
< dlerror();
---
> handles[n_handles++] = handle;
> dlerror();
หากคุณต้องการตัดไปที่การไล่ล่านี่คือบรรทัดที่ได้รับผลกระทบหมายเลขบรรทัดที่แสดงเพื่อความสะดวก ฉันเพิ่งไปใช้แพทช์ของ Dan ด้วยมือเนื่องจาก "patch" ให้ข้อผิดพลาดและทำงานได้
เริ่มต้นจาก Line 5128 ที่นี่เป็นวิธีที่ควรดูแลแพตช์
5128 }
5129 #else
5130 /* Install libstdc++ for java */
5131 const char libstcpp[] = "libstdc++.so.6";
5132 D(bug(" trying to open standard C++ runtime '%s'\n", libstcpp ));
5133 if ((handle = dlopen(libstcpp, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {
5134 npw_printf("ERROR: %s\n", dlerror());
5135 return 1;
5136 }
5137 handles[n_handles++] = handle;
5138 dlerror();
5139 #endif
5140 D(bug(" %s\n", plugin_path));
5141 if ((handle = dlopen(plugin_path, RTLD_LAZY)) == NULL) {
สังเกตอักขระ "#" ในบรรทัด 5139 และบรรทัด 5129 ควรอยู่ที่นั่นอย่าลบออกทิ้ง # ไว้ในโค้ด แน่นอนว่าหมายเลขบรรทัดไม่ได้อยู่ในไฟล์ที่แก้ไขเสร็จแล้วพวกเขาจะแสดงที่นี่เพื่อความสะดวกในการช่วยคุณค้นหาตำแหน่งที่รหัสโปรแกรมแก้ไขนี้ไป
ตอนนี้คุณสามารถดำเนินการต่อเพื่อเรียกใช้ make จากบรรทัดคำสั่ง:
cd /home/gstanden/Downloads/nspluginwrapper-1.4.4
make
ดีที่จะทำให้เกิดข้อผิดพลาด โปสเตอร์ "910Radar" คิดออกมาว่า คุณต้องเพิ่มส่วนย่อยลงในคำสั่ง make และรันด้วยตนเอง คุณสามารถดูโพสต์ "910Radar" ได้ที่นี่: http://ubuntuforums.org/showthread.php?t=1858097
และสิ่งที่เขาทำ (และสิ่งที่ฉันทำ) ก็คือรันคำสั่ง make ด้วยตนเองดังต่อไปนี้ (และใช้งานได้) สำหรับมัน คำสั่งนั้นอยู่ที่นี่เพียงวางลงในบรรทัดคำสั่ง:
gcc -std=c99 -o npplayer npplayer-npw-player.o npplayer-debug.o npplayer-rpc.o npplayer-utils.o npplayer-glibcurl.o npplayer-gtk2xtbin.o -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lglib-2.0 -lcurl -lXt -lX11 -lpthread -lgthread-2.0
และมันใช้งานได้ ตอนนี้คุณสามารถเรียกใช้ "make install" สำหรับ "nspluginwrapper" แล้วคุณสามารถเรียกใช้เพื่อตัดจาวาแบบ 32 บิตที่คุณติดตั้งไว้เพื่อให้ firefox 64- บิตสามารถใช้งานได้คำสั่งนั้นคือ:
sudo nspluginwrapper -i /usr/lib/jvm/java-6-oracle/jre/lib/i386/libnpjp2.so
ซึ่งควรส่งคืนพรอมต์คำสั่งโดยไม่มีข้อผิดพลาดและไม่มีข้อความ หมายเหตุหาก libnpjp2.so ของคุณอยู่ในไดเรกทอรีอื่นให้ใช้เส้นทางของคุณแน่นอน
ฉันยังพบว่าแม้ว่า pulseaudio ทำงานบน Ubuntu 12.04 ของฉัน (youtube, วิดีโอและอื่น ๆ ) "การทดสอบเสียง" ไม่ทำงานบนแผง "เสียง" ในการตั้งค่า Ubuntu การคิดว่าเป็นความคิดที่ดีที่จะแก้ไขปัญหาใด ๆ ที่ฉันพบด้วยเสียงบน Ubuntu ของฉันฉันได้แก้ไขเช่นกัน ฉันพบว่าการแก้ไขปัญหานั้นต้องการขั้นตอนนี้:
sudo apt-get install libcanberra-pulse
จากนั้นเมื่อเสร็จแล้วลำโพง "ทดสอบ" ด้านขวาและซ้ายจะใช้งานได้ดีมาก (เสียงผู้หญิงพูดจานุ่มนวลกับคุณว่าดีแค่ไหนการบอกคุณว่าลำโพงของคุณทำงานแต่ละด้านน่ารักมาก)
นอกจากนี้หากคุณเคยไปที่หน้าเว็บที่บอกว่าจะดึง pulseaudio ออกมาแล้วและพบว่าฉันทำเช่นนั้นการริพเอาพัลส์เสียงไม่ทำงานเท่าที่แก้ไขเสียงคอมพิวเตอร์สำหรับปัญหา webex (อย่างน้อยก็ไม่ได้ทำเพื่อฉัน) ) จากนั้นคุณสามารถใส่เสียงชีพจรกลับมาและวิดเจ็ตแถบเครื่องมือของ pulseaudio กลับสู่ Ubuntu 12.04 โดยใช้คำสั่งเหล่านี้:
sudo apt-get install pulseaudio
sudo apt-get install indicator-sound
(นำพัลส์เสียงกลับมาและใส่ตัวบ่งชี้บนวิดเจ็ตที่ด้านบน) คุณอาจต้องการรีบูตหลังจากทำเช่นนั้น
ตอนนี้ลองและหวังว่าถ้าฉันจำทุกขั้นตอนคุณจะสามารถเรียกใช้เสียง webex จากเบราว์เซอร์ Mozilla Firefox 64- บิตบน Ubuntu 12.04 64- บิตและจะสร้างเสียง webex ผ่านคอมพิวเตอร์ทำงานได้ดี! แอปเพล็ตเล็ก ๆ เปิดขึ้นเมื่อคุณคลิกที่ "ใช้คอมพิวเตอร์ของฉัน" เพื่อเสียงเมื่ออยู่ใน webex
สนุกและขอขอบคุณ Dan Menes และ "910Radar" ที่ยิ่งใหญ่และผู้โพสต์ที่ไม่รู้จักซึ่งโพสต์เกี่ยวกับสิ่งพื้นฐานเช่นวิธีการแก้ไขรหัส src วิธีเพิ่มรายการทางเลือก Java และอื่น ๆ ทำให้ทุกอย่างเป็นไปได้ ปัญหาในแล็ปท็อป Ubuntu ของฉัน!