Получение данных mp3 из интернет-магазина движка приложения Google через ajax - PullRequest
0 голосов
/ 29 марта 2012

Я пытаюсь сохранить аудиофайлы в интернет-магазине Google App Engine и воспроизвести их в браузере. Проблема, с которой я сталкиваюсь, состоит в том, что данные, которые я получаю в браузере, являются фактическими данными mp3. Я ожидал получить URL для воспроизведения mp3 в интернет-магазине. Итак, мой вопрос: что мне нужно изменить, чтобы получить URL для воспроизведения блоба вместо аудиоданных?

Вот мой обработчик на стороне сервера.

class ServeBlobHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self):

    user = users.get_current_user()
    query = db.GqlQuery("SELECT * FROM AudioData Where userId = :1", user.user_id())

    results = query.fetch(limit=300)
    for dStoreEntry in results:

        entityBlobInfo = dStoreEntry.audioBlob

    self.send_blob(entityBlobInfo)

Это клиентская сторона.

$.ajax({
    url : '/serve_blob/audio/',
    type : 'GET',
    dataType : 'text',
    success : function(data) {
        alert('GET, audio data : \n '+ data );
    }
});

Ответы [ 3 ]

0 голосов
/ 29 марта 2012

URL-адрес страницы, с которой вы в данный момент извлекаете данные из , равен URL-адресу MP3. Вам нужно будет использовать какой-нибудь веб-плеер для его воспроизведения.

0 голосов
/ 29 марта 2012

Получить JPlayer - http://www.jplayer.org/

И тогда ваш пример должен работать нормально. Мы используем его вместе с appengine blobstore в Java, и это здорово. URL из магазина будет работать в jplayer.

Вы также можете установить заголовки кэша в URL-адресах больших двоичных объектов, если переписать их, чтобы удалить любые параметры запроса и сэкономить расходы на обслуживание каждого потока.

0 голосов
/ 29 марта 2012

Какой заголовок Content-type получает ваш браузер для mp3-запроса? Я предполагаю, что это application/octet-stream

Посмотрите, что документы Blobstore говорят о загрузке:

If you don't specify a content type, the Blobstore will try to infer it from the 
file extension. If no content type can be determined, the newly created blob is 
assigned content type application/octet-stream

Перейдите на страницы администратора GAE и проверьте Blob Viewer, чтобы узнать, какой тип контента был назначен вашим mp3-файлам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...