1

gmusicapi ( https://github.com/simon-weber/Unofficial-Google-Music-API ) を使用して、音楽を再生したり、プレイリストを操作したりできるインターフェイスを作成しています。生の mp3 データをダウンロードできるようにアプリケーションを作成しましたが、それを再生するライブラリを見つけるのに苦労しています。GST は URL を再生できますが、Cookie 認証は許可しません。pygame は mp3 を再生できますが、データではなくファイルから再生できます。Pythonで生のmp3データを再生する方法を知っている人はいますか?

def gm_PlaySong(self, url):
    req = urllib2.Request(url)
    for cookie in self.api.session.cookies:
        req.add_header(cookie.name, cookie.value)
    resp = urllib2.urlopen(req)
    song = resp.read()

曲は未加工の mp3 です。

4

1 に答える 1

0

ファイルに書き込む

まず、mp3 データをファイルに書き込んで pygame で再生するのが簡単です。あなたはそうすることができます:

import pygame
def gm_PlaySong(self, url):
    req = urllib2.Request(url)
    for cookie in self.api.session.cookies:
        req.add_header(cookie.name, cookie.value)
    resp = urllib2.urlopen(req)
    song = resp.read()
    with open('path/to/file.mp3', 'wb') as outfile:
        outfile.write(song)
    
    pygame.mixer.music.load('path/to/file.mp3')

使用するStringIO

または、乾燥させることができるもの - ここでテストするためのツールがないため、これは少し推測です -StringIO.StringIOクラスを使用して、生の mp3 データを pygame にフィードする方法と同様に試すことができます。 Python ファイル オブジェクトです。

これは次のようになります。

import pygame, StringIO
def gm_PlaySong(self, url):
    req = urllib2.Request(url)
    for cookie in self.api.session.cookies:
        req.add_header(cookie.name, cookie.value)
    resp = urllib2.urlopen(req)
    song = StringIO.StringIO(resp.read()) # Gives you a file-like object
    
    # load song
    pygame.mixer.music.load(song)
于 2012-10-15T04:34:22.710 に答える