Не работает плеер на странице

353
03 сентября 2017, 01:33

В одном из полей сущности хранится музыкальная композиция (также есть текст и картинка), сущность хранится в базе. Ajax запросом обращаюсь к Spring контролёру, достаю список сущностей из базы и json'ом отправляю на страницу, там прохожу по этому списку, отображаю текст, картинку, а вот с муз.композицией не выходит. В моей реализации каждому объекту отображаемого списка соответствует свой плеер, но это не обязательно, он может быть и один, например вверху страницы, а с помощью jQuery подставлять src соответствующего объекта (так пробовал, результат тот же). В отображаемом на странице списке на долю секунды появляется плеер и исчезает, подскажите, что не так?? Если указать src к файлу на диске, то всё ок, а вот к контролёру не работает(( Сущность

@Entity
@Table
public class Message {
    @Id
    @GeneratedValue
    @Column(name = "id")
    private long idMessage;
    @Temporal(value = TemporalType.TIMESTAMP)
    private Date date = new Date();
    private String text;
    @Column(columnDefinition = "LONGBLOB")
    @Lob
    private byte[] img;
    private String nameSong;
    @Column(columnDefinition = "LONGBLOB")
    @Lob
    private byte[] song;

Методы контролёра для загрузки сообщений, а так же поиска в базе изображения и муз.композиции

@RequestMapping("/upload/messages")
    public void uploadMessages(Model model,
                               HttpServletResponse response,
                               @ModelAttribute(value = "date") Date date) {
        List<Message> messageList = serviceMessage.findAllMessage(date);// загружаем полный стек сообщений
        if (!messageList.isEmpty()) {
            date = messageList.get(messageList.size() - 1).getDate();
            model.addAttribute("date", date);
        }
        ObjectMapper mapper = new ObjectMapper();
        String json = "";
        try {
            json = mapper.writeValueAsString(messageList);
            response.getWriter().println(json);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
        @RequestMapping("/find/img")
        public ResponseEntity<byte[]> findImg(HttpServletRequest request) {
            long idMessage = Long.parseLong(request.getParameter("idMessage"));
            byte[] img = serviceMessage.findImg(idMessage);
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.IMAGE_PNG);
            return new ResponseEntity<byte[]>(img, headers, HttpStatus.OK);
        }
        @RequestMapping("/find/song")
        public ResponseEntity<byte[]> findSong(HttpServletRequest request) {
            long idMessage = Long.parseLong(request.getParameter("idMessage"));
            byte[] song = serviceMessage.findSong(idMessage);
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.ALL);
            return new ResponseEntity<byte[]>(song, headers, HttpStatus.OK);
        }

Разметка html, использую jsp страницу

...
    <div id="messageList">
        <%-- Message List... --%>
    </div>
...

Код jQuery

function UploadMessage() {
    $.ajax({
        type: "get",
        url: "upload/messages",
        dataType: "json",
        cache: false
        },
        success: SuccessUploadMessage
    })
}
function SuccessUploadMessage(result) {
    $.each(result, function (index, value) {
        var txt = value.text;
        var img = value.img;
        var nameSong = value.nameSong;
        if (txt != null || img != null || nameSong != null) {
            $("#messageList").prepend("<div id='oneMessage'></div>");// предварительно создаём отдельный блок для каждого сообщения
            if (txt != null) {// вставляем текст сообщения
                $("#oneMessage").append("<li id='myText' style='display: none'>" + value.text + "</li>");
                $("#myText").fadeIn(1500);
            }
            if (img != null) {// вставка изображения
                $("#oneMessage").append("<img id='myImg' src='' style='width: 140px; height: 100px; display: none'>");
                $("#myImg").attr("src", "find/img/?idMessage=" + value.idMessage);
                $("#myImg").show(800)
            }
            if (nameSong != null) {// вставляем аудиофайл
                $("#oneMessage").append("<audio id='mySong' controls='controls' src=''></audio>");
                $("#mySong").attr("src", "find/song/?idMessage" + value.idMessage)
            }
            $("#messageList").prepend("<br>")
        }
    });
}
READ ALSO
Пытаюсь написать дождь на java - AWT, Swing

Пытаюсь написать дождь на java - AWT, Swing

Я пытаюсь написать дождь на java, но пока ни как не могу заставить дождинку двигаться:

373
Как парсить целую страничку html в android?

Как парсить целую страничку html в android?

К примеру, есть страничка в нэте с новостьюВ ней поочередно идут: Название статьи Краткое описание Фотография 1 Еще немного текста Фотография...

399
интерактивная карта на Drupal

интерактивная карта на Drupal

Подскажите в чем проблема может быть, карта рассыпалась, по сайту не каких работ и не было, только было просто изменено имя сотрудника в контактах,...

369