Как преобразовать аудио строку обратно в аудио байты в java

Вы можете использовать diff и передать -1 в качестве аргумента periods:

>>> df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
>>> df["dA"] = df["A"].diff(-1)
>>> df
   A   B  dA
0  9  12   5
1  4   7   2
2  2   5   1
3  1   4 NaN

[4 rows x 3 columns]
-3
задан Andrew Thompson 13 July 2018 в 12:26
поделиться

1 ответ

Строки предназначены для представления текста. Аудиоданные не являются текстовыми. Попытайтесь, как можете, невозможно переместить некоторые аудиоданные в String, а затем попытаться извлечь ваши аудиоданные из String. Он не предназначен для работы.

Поскольку аудиоданные, с которыми вы хотите работать, не являются текстом, то у вас нет оснований предполагать, что String в этом процессе. Забудьте о Strings, теперь вы знаете, что они не подходят для вашей цели, поэтому оставьте их в покое полностью. Двоичные данные, такие как аудио, могут быть представлены как последовательности байтов. Например, например, массив byte [].

Удалить переменную String testString. Не строите его, не объявляйте, полностью удаляйте. Это строка, и вы не можете использовать Strings для своей цели, поэтому избавитесь от нее.

Вместо этого давайте сосредоточимся на использовании вашей переменной byte[] test как есть. Это уже байт [] и содержит все данные. Так что это все, что вам нужно.

Вы можете записать его с помощью System.out.write(test);, но в консоли это не очень полезно. В OutputStream сокета это прекрасно.

Или вы можете записать его шестнадцатеричную кодированную версию с помощью:

System.out.println(getHexString(test));

Здесь вы получите полностью функциональный результат. Декодирование их обратно в байты даст вам именно те байты, с которых вы начали.

0
ответ дан kumesana 17 August 2018 в 13:12
поделиться
  • 1
    Я согласен, вы взяли на себя основную проблему со строками. Но тогда: мы действительно ничего не знаем о том, как эти аудиоданные поступают в его HTTP-запрос. Другими словами: вы обратились к тем частям вопроса, на которые на самом деле можно ответить. Все остальное неясно ... – GhostCat 13 July 2018 в 12:35
  • 2
    @GhostCat Конечно. Тем не менее, достаточно сказать, что нужно сказать и настаивать на: Строки - неправильный инструмент для работы с нетекстовым двоичным кодом. Если вы работаете с нетекстовым двоичным кодом, и вы в какой-то момент помещаете его в строку, то вы потерпели неудачу, и ваша программа не будет работать. Поскольку это неизбежное следствие, тогда не использовать String для чего-либо еще, кроме текста. – kumesana 13 July 2018 в 12:40
Другие вопросы по тегам:

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