Как нарисовать сигнал из объекта waveformdata в iOS Swift? - PullRequest
0 голосов
/ 04 февраля 2020
[
  {
    "id": "48250",
    "created_at": "2014-07-06 13:05:10",
    "user_id": "7",
    "duration": "7376",
    "permalink": "shawne-back-to-the-roots-2-05072014",
    "description": "Years: 2000 - 2005\r\nSet Time: Warm Up (11 pm - 01 am)\r\n",
    "downloadable": "1",
    "genre": "Drum & Bass",
    "genre_slush": "drumandbass",
    "title": "Shawne @ Back To The Roots 2 (05.07.2014)",
    "uri": "https:\/\/api-v2.hearthis.at\/\/shawne-back-to-the-roots-2-05072014\/",
    "permalink_url": "http:\/\/hearthis.at\/\/shawne-back-to-the-roots-2-05072014\/",
    "artwork_url": "http:\/\/hearthis.at\/_\/cache\/images\/track\/500\/801982cafc20a06ccf6203f21f10c08d_w500.png",
    "background_url": "",
    "waveform_data": "http:\/\/hearthis.at\/_\/wave_data\/7\/3000_4382f398c454c47cf171aab674cf00f0.mp3.js",
    "waveform_url": "http:\/\/hearthis.at\/_\/wave_image\/7\/4382f398c454c47cf171aab674cf00f0.mp3.png",
    "user": {
      "id": "7",
      "permalink": "shawne",
      "username": "Shawne (hearthis.at)",
      "uri": "https:\/\/api-v2.hearthis.at\/shawne\/",
      "permalink_url": "http:\/\/hearthis.at\/shawne\/",
      "avatar_url": "http:\/\/hearthis.at\/_\/cache\/images\/user\/512\/06a8299b0e7d8f2909a22697badd7c09_w512.jpg"
    },
    "stream_url": "http:\/\/hearthis.at\/shawne\/shawne-back-to-the-roots-2-05072014\/listen\/",
    "download_url": "http:\/\/hearthis.at\/shawne\/shawne-back-to-the-roots-2-05072014\/download\/",
    "playback_count": "75",
    "download_count": "9",
    "favoritings_count": "7",
    "favorited": false,
    "comment_count": "0"
  }
]

Этот API-интерфейс возвращает URL-адрес сигнала и данные сигнала. Как преобразовать данные формы сигнала для рисования формы волны, аналогичной изображению в форме волны

Api - https://hearthis.at/api-v2/

1 Ответ

1 голос
/ 04 февраля 2020

Похоже, что "данные" - это просто последовательность высот столбцов:

[136,132,133,133,138,...]

Так что просто нарисуйте последовательность столбцов на этих высотах (или высотах, пропорциональных им). Вам может потребоваться нарисовать только каждый n-й столбец или, может быть, усреднить каждый набор из n столбцов вместе, чтобы получить более точное представление (это то, что они делают на сайте, на который вы указали).

...