1

私は python を学んでいます。mp3/wav プレーヤーを作成したいのですが、これを行うために pymedia と python2 を使用しています。このコードを実行しようとしていますが、端末に「セグメンテーション エラー (コア ダンプ)」と表示されます。なんで?

クラス「遊び」の一部:

import pymedia
import time
demuxer = pymedia.muxer.Demuxer('mp3')
testsong = "/home/user/Musica/Avicii/True/YouMakeMe.mp3"
f = open(testsong, 'rb')
spot = f.read()
frames = demuxer.parse(spot) ## SEGMENTATION FAULT ####
decoder = pymedia.audio.acodec.Decoder(demuxer.streams[0]) 
frame = decoder.decode(spot)
sound = pymedia.audio.sound
print frame.bitrate, frame.sample_rate
song = sound.Output(frame.sample_rate, frame.channels, 16)
while len(spot) > 0:
    try:
        if frame:
            song.play(frame.data)
            spot = f.read(512)
        frame = decoder.decode(spot)
    except:
        pass

コメントに従って編集

グローバル変数を削除し、不要なコードを削除しました。これを除いて、すべてをカットした場合:

import pymedia
import time

demuxer = pymedia.muxer.Demuxer('mp3')

testsong="/home/user/Musica/Avicii/True/YouMakeMe.mp3"
f=open(testsong, 'rb')
spot=f.read()
frames = demuxer.parse(spot) #Segmentation Fault (Core Dumped)

セグメンテーション違反も発生します。

4

1 に答える 1

0

Python Wikiによると、「2006年以降更新されていません」であるpymediaモジュールのバグにほぼ確実に遭遇しました。テストソングに欠陥がある可能性はありますが、適切に作成された Python ライブラリは、不適切な入力でもセグメンテーション違反を起こすべきではありません。

何を達成しようとしているのかは述べていませんが、上記のリンクまたは公式 Wiki のオーディオ ページは、代替ライブラリを探すのに適した場所です。

于 2013-10-01T14:25:06.140 に答える