晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /proc/thread-self/root/usr/share/doc/python2-docs/html/_sources/library/ |
Upload File : |
:mod:`sunaudiodev` --- Access to Sun audio hardware
===================================================
.. module:: sunaudiodev
:platform: SunOS
:synopsis: Access to Sun audio hardware.
:deprecated:
.. deprecated:: 2.6
The :mod:`sunaudiodev` module has been removed in Python 3.
.. index:: single: u-LAW
This module allows you to access the Sun audio interface. The Sun audio hardware
is capable of recording and playing back audio data in u-LAW format with a
sample rate of 8K per second. A full description can be found in the
:manpage:`audio(7I)` manual page.
.. index:: module: SUNAUDIODEV
The module :mod:`SUNAUDIODEV` defines constants which may be used with this
module.
This module defines the following variables and functions:
.. exception:: error
This exception is raised on all errors. The argument is a string describing what
went wrong.
.. function:: open(mode)
This function opens the audio device and returns a Sun audio device object. This
object can then be used to do I/O on. The *mode* parameter is one of ``'r'`` for
record-only access, ``'w'`` for play-only access, ``'rw'`` for both and
``'control'`` for access to the control device. Since only one process is
allowed to have the recorder or player open at the same time it is a good idea
to open the device only for the activity needed. See :manpage:`audio(7I)` for
details.
As per the manpage, this module first looks in the environment variable
``AUDIODEV`` for the base audio device filename. If not found, it falls back to
:file:`/dev/audio`. The control device is calculated by appending "ctl" to the
base audio device.
.. _audio-device-objects:
Audio Device Objects
--------------------
The audio device objects are returned by :func:`.open` define the following
methods (except ``control`` objects which only provide :meth:`getinfo`,
:meth:`setinfo`, :meth:`fileno`, and :meth:`drain`):
.. method:: audio device.close()
This method explicitly closes the device. It is useful in situations where
deleting the object does not immediately close it since there are other
references to it. A closed device should not be used again.
.. method:: audio device.fileno()
Returns the file descriptor associated with the device. This can be used to set
up ``SIGPOLL`` notification, as described below.
.. method:: audio device.drain()
This method waits until all pending output is processed and then returns.
Calling this method is often not necessary: destroying the object will
automatically close the audio device and this will do an implicit drain.
.. method:: audio device.flush()
This method discards all pending output. It can be used avoid the slow response
to a user's stop request (due to buffering of up to one second of sound).
.. method:: audio device.getinfo()
This method retrieves status information like input and output volume, etc. and
returns it in the form of an audio status object. This object has no methods but
it contains a number of attributes describing the current device status. The
names and meanings of the attributes are described in ``<sun/audioio.h>`` and in
the :manpage:`audio(7I)` manual page. Member names are slightly different from
their C counterparts: a status object is only a single structure. Members of the
:c:data:`play` substructure have ``o_`` prepended to their name and members of
the :c:data:`record` structure have ``i_``. So, the C member
:c:data:`play.sample_rate` is accessed as :attr:`o_sample_rate`,
:c:data:`record.gain` as :attr:`i_gain` and :c:data:`monitor_gain` plainly as
:attr:`monitor_gain`.
.. method:: audio device.ibufcount()
This method returns the number of samples that are buffered on the recording
side, i.e. the program will not block on a :func:`read` call of so many samples.
.. method:: audio device.obufcount()
This method returns the number of samples buffered on the playback side.
Unfortunately, this number cannot be used to determine a number of samples that
can be written without blocking since the kernel output queue length seems to be
variable.
.. method:: audio device.read(size)
This method reads *size* samples from the audio input and returns them as a
Python string. The function blocks until enough data is available.
.. method:: audio device.setinfo(status)
This method sets the audio device status parameters. The *status* parameter is
a device status object as returned by :func:`getinfo` and possibly modified by
the program.
.. method:: audio device.write(samples)
Write is passed a Python string containing audio samples to be played. If there
is enough buffer space free it will immediately return, otherwise it will block.
The audio device supports asynchronous notification of various events, through
the SIGPOLL signal. Here's an example of how you might enable this in Python::
def handle_sigpoll(signum, frame):
print 'I got a SIGPOLL update'
import fcntl, signal, STROPTS
signal.signal(signal.SIGPOLL, handle_sigpoll)
fcntl.ioctl(audio_obj.fileno(), STROPTS.I_SETSIG, STROPTS.S_MSG)
:mod:`SUNAUDIODEV` --- Constants used with :mod:`sunaudiodev`
=============================================================
.. module:: SUNAUDIODEV
:platform: SunOS
:synopsis: Constants for use with sunaudiodev.
:deprecated:
.. deprecated:: 2.6
The :mod:`SUNAUDIODEV` module has been removed in Python 3.
.. index:: module: sunaudiodev
This is a companion module to :mod:`sunaudiodev` which defines useful symbolic
constants like :const:`MIN_GAIN`, :const:`MAX_GAIN`, :const:`SPEAKER`, etc. The
names of the constants are the same names as used in the C include file
``<sun/audioio.h>``, with the leading string ``AUDIO_`` stripped.