This is what I get if I run your code:

07-Boabdil, Bulerías.ogg
07-Boabdil, Bulerías.ogg
Traceback (most recent call last):
File "C:\Users\Bo\Projekt\eclipse workspace\Bo\nametest.py", line 16, in <module>
    pygame.mixer.music.load(open(file_path))
pygame.error: Not an Ogg Vorbis audio stream

and if I remove open() I get this

07-Boabdil, Bulerías.ogg
07-Boabdil, Bulerías.ogg
Traceback (most recent call last):
File "C:\Users\Bo\Projekt\eclipse workspace\Bo\nametest.py", line 16, in <module>
    pygame.mixer.music.load(file_path)
pygame.error: Couldn't open '07-Boabdil, Buler�as.ogg'


I will use ordinary python os calls to copy the file and renaming the copy
as a workaround, as I don't see another way around this problem.
Thanks for trying to help.

Bo)

Gino Ingras skrev den 2015-02-14 11:57:
see also https://www.python.org/dev/peps/pep-0263/
i'd got a similar problem between windows, dos, and linux filesnames, ascii files.

i'd try your exacte copy "07-Boabdil, Bulerías.ogg".
exact code is:

#!/usr/bin/env python
# -*- coding: utf8 -*-

import os

import pygame
from pygame.locals import *

pygame.init()
pygame.mixer.set_num_channels(3)
pygame.mixer.init()

file_path = "07-Boabdil, Bulerías.ogg"
print file_path
file_path = file_path.decode('utf8')
print file_path

pygame.mixer.music.load(open(file_path))
pygame.mixer.music.play(1)
pygame.mixer.music.set_volume(0.5)


2015-02-14 11:46 GMT+01:00 Gino Ingras <ginoing...@gmail.com <mailto:ginoing...@gmail.com>>:

    you should learn about codecs strings inputs/output.
    ensure you always work with the same, utf8.
    most of python modules are based on, and python3 assume by default
    as in python2 you got

    from __future__ import unicode_literals

    see (in french, sorry) a good link:
    http://sametmax.com/lencoding-en-python-une-bonne-fois-pour-toute/


    2015-02-14 11:21 GMT+01:00 Bo Jangeborg <b...@softwave.se
    <mailto:b...@softwave.se>>:

        Greg Ewing skrev den 2015-02-14 02:00:

            Bo Jangeborg wrote:

                file_path = "07-Boabdil, Bulerías.ogg"
                fi = open(file_path, 'rb').read()
                pygame.mixer.music.load(fi)

                But that gets me the Error:
                "File path 'OggS' contains null characters"


            music.load() expects to be passed the name of a file,
            not the contents of the file. Just do this:

            file_path = "07-Boabdil, Bulerías.ogg"
            pygame.mixer.music.load(file_path)

        The reason I tried the object passing was because just
        passing the name didn't work. So I am looking for
        a workaround. According to the documentation
        one should be able to pass an object as a parameter
        but I am not sure if I am doing it the right way.

        pygame.mixer.music.load()
        Load a music file for playback
        load(filename) -> None
        load(object) -> None
        This will load a music filename/file object and prepare it for
        playback.




Reply via email to