查看“Skype”的源代码
来自Ubuntu中文
←
Skype
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Translation}} {{From|https://help.ubuntu.com/community/Skype}} {{Translator|alfredhuang}} {{Languages|UbuntuHelp:Skype}} == 介绍 == Skype是一款能让你使用电脑通过互联网拨打电话的专用软件。Skype使用了分散点对点技术,所以你的电话不是通过一个中心服务器,而是通过分布式服务器群和其他用户传递。它使用了其专有的通信协议来实现这点。另外,所有的通信均使用端到端加密以防他人窃听。Skype软件是自由使用的,但它并不是免费软件;其源代码是私有并不可修改的。 更多有关Skype的信息见[http://en.wikipedia.org/wiki/Skype Wikipedia]。Skype官方站点是http://www.skype.com。 [[UbuntuWiki:SkypeEthics|SkypeEthics]]给出了一些信息以说明为什么有些用户选择不使用Skype。 使用开源协议的开源可替代软电话包括[[UbuntuHelp:Ekiga|Ekiga]],[[UbuntuHelp:Twinkle|Twinkle]]和[http://www.wengophone.com Wengophone]。 你需要一套可工作的声音输入和输出配置以使用Skype。 大多数的现代电脑拥有外置的声音输出,但是你需要一个麦克风(或头戴设备,当你没有购买麦克风时)作为输入。为了播放你的面容,你可能还需要一个网络摄像头。 有关发行于Ubuntu上的Skype详细信息的连接能够在下面的''资源''中找到。 == 安装Skype == Skype不包含在任何一个Ubuntu软件库中,因此不能通过使用不带Skype库的Ubuntu的包管理软件如<code><nowiki>Synaptic</nowiki></code> 和 <code><nowiki>apt-get</nowiki></code>。这里有两种选择-Skype库,或Medibuntu库。 通过使用软件库,你能够自动获得软件未来的升级。 如果你不想这样做,或不能(例如,如果你使用了AMD64),也许最简单的安装方式是使用可直接从Skype网站获得的Debian(.deb)包。相对的是,你不会自动获得今后的更新,你需要在有新版本的时候下载他们。 === Skype库 === <ol><li>添加Skype库*: <code><nowiki>deb http://download.skype.com/linux/repos/debian/ stable non-free</nowiki></code> </li><li>重载或升级包信息 </li><li>安装<code><nowiki>skype</nowiki></code>包。</li></ol> === Medibuntu库 === <ol><li>更多信息见[[UbuntuHelp:Medibuntu|Medibuntu]]。</li></ol> 关于添加,移除和修改库的信息,见[[UbuntuHelp:Repositories/Ubuntu|Repositories/Ubuntu]] === Debian包 === <ol><li>从http://www.skype.com/go/getskype-linux-ubuntu下载Debian包 </li><li>打开文件(将会通过缺省的GDebi包安装器打开)。 </li><li>点击安装按钮。</li></ol> === AMD64 === 对 6.06: <ol><li>下载debian包(http://skype.com/download/skype/linux/) </li><li>安装skype: sudo dpkg -i --force-all <the_package> </li><li>确定缺失的32位库文件: ldd /usr/bin/skype | grep not </li><li>下载库文件(确定为i386版, 提示: 包名称为libqt3-mt): http://packages.ubuntu.com/ </li><li>mkdir ~/.32bitLibs (或者使用 /lib32 然后切换最后一步至此目录) </li><li>解压*.deb文件(dpkg-deb --extract <package> <targetdir>) </li><li>从解压缩的包中复制必要的库文件至 ~/.32bitLibs </li><li>创建一个包脚本: export LD_LIBRARY_PATH="/home/<your_user>/.32bitLibs/";skype</li></ol> 对 6.10 或 7.04: <ol><li>安装32位库: sudo aptitude install lib32asound2 ia32-libs-gtk ia32-libs-kde </li><li>下载debian包(http://skype.com/download/skype/linux/) </li><li>安装skype: sudo dpkg -i --force-architecture <the_package></li></ol> 对 7.10: <ol><li>安装32位库: sudo aptitude install lib32asound2 ia32-libs-gtk ia32-libs-kde </li><li>下载Ubuntu包(http://skype.com/download/skype/linux/) </li><li>安装skype: sudo dpkg -i --force-architecture <the_package> </li><li>确定是否缺失额外的32位库: ldd /usr/bin/skype | grep not </li><li>查找并下载缺失的32位(i386)库. (Hint [http://packages.ubuntu.com/gutsy/libs/libdbus-1-3 libdbus-1.3], [http://packages.ubuntu.com/gutsy/libs/libqt4-core libqt4-core], [http://packages.ubuntu.com/gutsy/libs/libqt4-gui libqt4-gui], [http://packages.ubuntu.com/gutsy/libs/libsigc++-2.0-0c2a libsigc++-2.0], [http://packages.ubuntu.com/gutsy/libs/libxss1 libXss]) </li><li>解压下载的*.deb文件: dpkg-deb --extract <package> <targetdir> </li><li>从解压缩的包中复制必要的库文件至 /lib32: sudo cp -i <targetdir>/usr/lib/* /lib32/</li></ol> 对 8.04: <ol><li>安装ia32-libs包(从公用组件中) </li><li>下载Ubuntu使用的Skype包 (http://skype.com/download/skype/linux/) </li><li>安装: sudo dpkg --install --force-architecture --force-depends <downloaded_package></li></ol> == 运行Skype == 要启动Skype,选择'''应用程序->互联网->Skype'''。它通常需要一至两分钟启动,你可能会认为什么都没发生,所以要耐心等待。当Skype窗口最终打开,注册(如有必要)并登录进你的Skype帐号。测试你的配置,通过选择<code><nowiki>回响/声音测试服务</nowiki></code>联络人(如果没有,添加联络人<code><nowiki>echo123</nowiki></code>)并点击在Skype窗口下端的绿色大按钮。如果连接建立并且你听到了声音,则你的声音配置是正常的。如果你不能听见声音,见如下的疑难解答节。 == Skype疑难解答 == 如果你有音频问题,首先检查确保系统的音频工作正常并且你的麦克风和喇叭的音量足够大。如果仍然无效,尝试替换Skype音频设备,如果最终所有均失败,修改你的ESD配置。 === 音频问题 === ==== 1. 音量 ==== <ol><li>通过<code><nowiki>声音首选项</nowiki></code>对话窗测试输出是否正常。选择'''系统->首选项->音效'''。</li><li>通过<code><nowiki>录音机</nowiki></code>程序测试麦克风输入是否正常。选择'''应用程序->影音->录音机'''。</li><li>通过选择'''应用程序->影音->音量控制'''确保你的音频输出和麦克风输入通道没有被静音。</li></ol> ==== 2. Skype 音频设备 ==== 如果你的音量经过了适当的配置并且你可以在Skype中听到声音,但你的联系人不能听到你的输入,你可能需要更改Skype的输入设备。从Skype的菜单中,选择'''工具->选项'''然后在打开的对话框中选择<code><nowiki>头戴/耳机</nowiki></code>。如果他们是可用的,尝试选择不同的<code><nowiki>呼叫</nowiki></code>。 ==== 3. ESD 配置 ==== ''注意: 仅对应 Ubuntu 5.10 (Breezy)。在 Ubuntu 6.06 (Dapper) 中已经是默认配置。'' 对于有些使用Skype的用户,一个GNOME ESD(增强声音守护进程)服务可能引起问题。如果Skype不能够呼入和呼出并且不断的崩溃,在ESD配置中做一个小的改变可能会有帮助。运行: <pre><nowiki> gksudo gedit /etc/esound/esd.conf </nowiki></pre> 然后修改这一行从: <pre><nowiki> auto_spawn=0 </nowiki></pre> 成为: <pre><nowiki> auto_spawn=1 </nowiki></pre> 登出再登录以重启ESD,然后按照如上方法重新测试Skype。看起来这个解决方法仅仅适用于当Skype是唯一使用音频的程序的时候。当在使用Skype的时候你不能够播放音乐,而当你播放音乐的时候不能够使用Skype。 更多的安装信息,见Skype主页相关文章 [http://www.skype.com/help/guides/soundsetup_linux.html Skype Sound and Audio Set-Up - PC Running Linux]。 ==== 4. ALSA 配置 ==== Enabling ALSA gives you the choice to workaround some Skype issues: The present Skype Linux release (1.2.0.18) uses OSS sound, which means it allows '''only one application to access sound device'''. On some systems, OSS is not even used by default, which means you won't be able to select the OSS sound device ('''/dev/dsp''') at all, because it does not exist. Worse off, it has a bug that makes Skype '''unusable after a call'''. Sometimes a few calls can be made, before it happens, but later only solution is to restart Skype. Technically it seems that Skype "forgets" to close the sound device before trying to open it again and therefore locks up. This seems to happen when '''you''' are the first to hang up and not when the other party hangs up first, so a workaround is to just wait at the end of a call and let the other party finish first. To avoid these issues, you can use ALSA instead of ESD. First, follow the guidelines found in [http://www.ubuntuforums.org/showthread.php?t=32063]. Then follow up with [http://juljas.net/linux/skype/]. Good luck! Note that the above forum post howto is for Hoary/Breezy. This should, according to [http://www.ubuntuforums.org/showpost.php?p=1143531&postcount=1089 mdz's post], not be an issue in Ubuntu 6.06 (Dapper). ===== 4.1 软件混音的另一个可能的解决办法 ===== If none of the other options works, try this one (it's working on a HP Pavilion dv1000). Taken from http://forum.skype.com/viewtopic.php?t=48195 Create or add the following to your .asoundrc file: <pre><nowiki> gedit ~.asoundrc </nowiki></pre> Add the following text to it <pre><nowiki> pcm.skype { type asym playback.pcm "skypeout" capture.pcm "skypein" } pcm.skypein { # Convert from 8-bit unsigned mono (default format set by aoss when # /dev/dsp is opened) to 16-bit signed stereo (expected by dsnoop) # # We can't just use a "plug" plugin because although the open will # succeed, the buffer sizes will be wrong and we'll hear no sound at # all. type route slave { pcm "skypedsnoop" format S16_LE } ttable { 0 {0 0.5} 1 {0 0.5} } } pcm.skypeout { # Just pass this on to the system dmix type plug slave { pcm "dmix" } } pcm.skypedsnoop { type dsnoop ipc_key 1133 slave { # "Magic" buffer values to get skype audio to work # If these are not set, opening /dev/dsp succeeds but no sound # will be heard. According to the alsa developers this is due # to skype abusing the OSS API. pcm "hw:0,0" period_size 256 periods 16 buffer_size 16384 } bindings { 0 0 } } </nowiki></pre> Create a skype launcher (in this example is going to be at your home directory). <pre><nowiki> gedit ~/skype.sh </nowiki></pre> add the following text <pre><nowiki> #/usr/bin/sh ALSA_OSS_PCM_DEVICE="skype" aoss /usr/bin/skype --disable-dbus </nowiki></pre> Give skype.sh execution rights by browsing with Nautilus over there, right click on the file, go to Properties, go to Permissions tab, and select "Execute" for the user. Double click on the file and you should be done. === 视频问题 === For troubleshooting video issues on Skype, the following wiki pages may be helpful: * [[UbuntuWiki:SkypeWebCams| Skype and webcams]] * [[UbuntuHelp:Webcam|General page on webcams]] === 端口使用 === Skype uses port 80 by default, and thus, may block some other applications that use the same port such as Apache. The solution is to change the port in one of the applications. Usually, port 81 is free and works fine. To change the port number in Skype go to menu Tools > Options, then click on the Advanced tab, then in the 'port' box, change to your preference. === 无效指针 === Some very few users have experienced the inability to normally start Skype 1.3 under Dapper, receiving the following error: <pre><nowiki> *** glibc detected *** free(): invalid pointer: 0x08aab8a0 *** </nowiki></pre> The pointer's address might vary on install or version, the only common factor exhibited by all people receiving the error is that all of them use '''SCIM''' to be able to input in one of various asian languages (some users exhibit this while using scim for Chinese, others when using it to input in Japanese so the language itself seems not to be important, only the presence of scim is). A few of these same persons report success in running a statically compiled version of the Skype 1.3 client. Others have shown success in changing the XIM input preferences during Skype launch by launching Skype (from either the command line or Gnome's/Kde's menu) with this command: <pre><nowiki> XMODIFIERS=@im=none QT_IM_MODULE=xim skype </nowiki></pre> This will hinder (read, remove) your ability to use scim to type in a foreign language inside Skype itself, but it will also most probably permit you to run Skype normally. If you use SCIM as your default input method, and you are unable to run Skype you could try these solutions and see if they solve the problem. === 系统的短暂挂起(几秒内) === Skype apparently creates FIFO threads when initiating a chat with someone. Users members of the admin group (typically the user who has installed Ubuntu) are likely to find this really annoying as the created threads do not relinquish the CPU easily. The first option (maybe the easiest) is to remove yourself from the admin group. You may otherwise intercept calls to pthread_create() with a preloaded (LD_PRELOAD) DSO: <pre><nowiki> #define _GNU_SOURCE 1 #include <dlfcn.h> #include <pthread.h> #include <stdio.h> #include <string.h> int (* orig_pthread_create) (pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) = NULL; static void change_sched_policy (pthread_attr_t *attr) { int policy; if (attr == NULL) return; pthread_attr_getschedpolicy (attr, &policy); if (policy == SCHED_FIFO) { printf ("### SCHED_FIFO policy changed to SCHED_RR\n"); pthread_attr_setschedpolicy (attr, SCHED_RR); } } int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) { pthread_attr_t new_attr; if (orig_pthread_create == NULL) { orig_pthread_create = dlsym (RTLD_NEXT, "pthread_create"); } change_sched_policy (attr); return orig_pthread_create ( thread, attr, start_routine, arg ); } </nowiki></pre> Compile the above source code with <code><nowiki>gcc -shared -o libskype.so skype.c</nowiki></code> and launch Skype as follow: <pre><nowiki> export LD_LIBRARY_PATH=path_to/libskype.so:/usr/lib/libqt-mt.so.3 /usr/bin/skype </nowiki></pre> My work colleagues and I have tested this on Ubuntu Edgy Eft and we haven't seen, so far, any side effects. === Skype 启动失败 === Skype has a conflict when the Nessus scanner is installed. When opening Skype from the command line the following error occurs: Skype会和已经安装好的Nessus扫描仪有冲突。当你从终端(也就是所谓命令行模式-其实一个意思)打开Skype的时候,会显示出现错误(如下所示): <pre><nowiki> skype: symbol lookup error: /usr/lib/libQtNetwork.so.4: undefined symbol: _ZN14QObjectPrivate15checkWindowRoleEv </nowiki></pre> The solution is to edit /etc/ld.so.conf and comment out the line /opt/nessus/lib and then run sudo ldconfig. 解决办法是编辑/etc路径(理解成文件夹也可以啊!)下的文件 ld.so.conf,把/opt/nessus/lib 这一行注释掉(就是让这行不起作用的意思啦~),接着再执行一下sudo ldconfig 打开ld.so.conf <pre><nowiki> sudo nano /etc/ld.so.conf </nowiki></pre> Put a # infront of the line /opt/nessus/lib. Save and exit. 找到/opt/nessus/lib这一行,在这行开头加一个井号(#),然后保存并退出。 <pre><nowiki> include /etc/ld.so.conf.d/*.conf #/opt/nessus/lib </nowiki></pre> Run 好了,执行sudo ldconfig <pre><nowiki> sudo ldconfig </nowiki></pre> Now Skype should open. 现在,Skype应该可以打开了。 == 显示配置 == Because Skype is a Qt application, Skype's typeface will appear very large on GNOME desktops. You can use either the <code><nowiki>kcontrol</nowiki></code> or the <code><nowiki>qt3-qtconfig</nowiki></code> package to configure the appearance of Skype and other KDE/QT applications. Of these two, the QT Configurator (<code><nowiki>qt3-qtconfig</nowiki></code>) has far fewer dependencies than <code><nowiki>kcontrol</nowiki></code> and may therefore be more convenient for people who mostly use non-KDE software. See also [[UbuntuHelp:QtGnome|QtGnome]] for how to make Skype (and other Qt applications) look more like Gnome. * A quick fix, without installing any configuration packages at all, is to make a file '''<code><nowiki>qtrc</nowiki></code>''' in your '''<code><nowiki>$HOME/.qt</nowiki></code>''' directory, and put these two lines in it: <pre><nowiki> [General] font=Bitstream Vera Sans Mono,9,-1,5,50,0,0,0,0,0 </nowiki></pre> * You can start QT Configurator with the "<code><nowiki>qtconfig</nowiki></code>" command. On the "Fonts" tab, choosing Font Family ''Sans Serif'' and Point Size 10 will give something that resembles Ubuntu's GNOME desktop. * If you install the <code><nowiki>kcontrol</nowiki></code> package, you may run it by entering '''<code><nowiki>kcontrol</nowiki></code>''' into the <code><nowiki>Applications/Run Application...</nowiki></code> prompt. Expand the <code><nowiki>Appearance & Themes</nowiki></code> menu and select <code><nowiki>Fonts</nowiki></code>. Press <code><nowiki>Adjust All Fonts</nowiki></code> and select <code><nowiki>Size</nowiki></code>. Lower this value to your preference (size 10 or 11 is usually satisfactory). Press <code><nowiki>OK</nowiki></code> and <code><nowiki>Apply</nowiki></code> and exit the KDE Control Center. https://help.ubuntu.com/community/Skype?action=AttachFile&do=get&target=kcontrol.png == 资源 == * The Skype homepage http://www.skype.com/ * Skype article on Wikipedia: http://en.wikipedia.org/wiki/Skype * The Skype forum, a good source of info on Skype and troubleshooting too http://forum.skype.com/ * A discussion on Skype forum of the dependency problem http://forum.skype.com/viewtopic.php?t=38474&postdays=0&postorder=asc&start=0 * A discussion on Ubuntu forum of the dependency problem http://www.ubuntuforums.org/showthread.php?t=81831 * A description of and workaround for the sound problem: http://juljas.net/linux/skype/. Note that this solution requires you to compile a C program. * Skype takes a long time to load? (change command to "skype --disable-dbus") http://forum.skype.com/viewtopic.php?t=47838 * https://wiki.ubuntu.com/SkypeEthics System hangs for a short while [[category:UbuntuHelp]]
返回
Skype
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息