Как мне захватить звук, который воспроизводится?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

26
задан Stu Mackellar 3 November 2008 в 12:42
поделиться

4 ответа

Предположение, что Вы говорите о Windows, существует по существу три способа сделать это.

первое должно открыть основной вывод аудиоустройства как источник записи. Это только возможно, когда драйвер поддерживает его, хотя большинство делает в эти дни. Общие названия для виртуального устройства, "Что Вы Слышите" или "Волна". Необходимо будет использовать подходящий API (см. WaveIn или DirectSound в MSDN) сделать получение.

второй путь состоит в том, чтобы записать драйвер фильтра, который может прервать аудиопоток, прежде чем это достигнет физического устройства. Снова, эта техника будет только работать на устройства, которые имеют подходящую топологию драйвера, и это, конечно, не для малодушного.

Это означает, что ни одна из этих опций, как не будут гарантировать, будет работать над ПК с произвольными аппаратными средствами.

последняя альтернатива должна использовать виртуальное аудиоустройство, такой как Виртуальный Аудиокабель . Если это устройство будет установлено как defualt устройство воспроизведения в Windows тогда, то все приложения хорошего поведения проиграют его. Можно тогда записать от того же устройства для получения суммированного вывода. Пока Вы управляете устройством, что приложение, Вы хотите записать использование тогда эта опция, будет всегда работать.

Все эти методы имеют их за и против - Вам решать, который наиболее подошел бы для Ваших потребностей.

18
ответ дан Stu Mackellar 3 November 2008 в 12:42
поделиться
  • 1
    Можно также распаковать ' apk' файл при помощи ' tar-xvf < apk_file> ' – Dan Borza 21 May 2016 в 00:39

При использовании OSX , Аудио Налет Pro от Rogue Amoeba , вероятно, является самым легким способом пойти.

Так или иначе, почему не только цикличное выполнение Ваше аудио назад в Вашу строку в и запись это? Это очень простое решение. Просто включите кабель в своем разъеме аудиовыхода и своей строке в разъеме и запустите recordung.

0
ответ дан bastibe 3 November 2008 в 12:42
поделиться
  • 1
    Я знаю, что это - старое сообщение, но I' m получение этого из плаката: AttributeError: multipart_yielder instance has no attribute '__len__' удивление, если у кого-либо еще есть этот prob. – Andy 17 February 2011 в 14:00

Можно использовать Аудиоинтерфейс Формы сигнала, существует статья MSDN о том, как получить доступ к нему на PInvoke.

для получения звука, который играется, просто необходимо открыть устройство воспроизведения вместо микрофона. Открытый для входа, конечно, не для вывода;-)

3
ответ дан Treb 3 November 2008 в 12:42
поделиться

Необходимо включить устройство stero соединение. если Вы делаете это, прямая звуковая находка это устройство.

0
ответ дан 3 November 2008 в 22:42
поделиться
  • 1
    @nalroff Вы hadn' t названный poster.streaminghttp.register_openers() – Piotr Dobrogost 7 April 2011 в 09:06
Другие вопросы по тегам:

Похожие вопросы: