SegFault使用模块pymedia解析mp3文件

时间:2013-10-01 11:28:08

标签: python segmentation-fault mp3

我正在学习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)

也会产生段错误。

1 个答案:

答案 0 :(得分:0)

根据Python Wiki is "Not updated since 2006",您几乎肯定会遇到pymedia模块中的错误。您的testsong可能存在缺陷,但编写良好的Python库即使在输入错误的情况下也不应该出现段错误。

您尚未说明您要完成的任务,但上面的链接或Audio page of the official Wiki将是寻找替代图书馆的好地方。