Android에서 mp3를 재생 하시나요?

존 오닐

개인 프로젝트로 Kivy 용 오디오 플레이어를 만들려고하는데 내 앱이 mp3 오디오를로드하지 못하는 것을 발견했습니다. 약간의 조사 끝에 라이센스 문제와 관련된 것 같습니까? 어쨌든 안드로이드는 여전히 mp3 파일을 재생할 수 있으므로 어떻게해야할까요?

현재로서는 kivy의 일반 SoundLoader () 클래스를 사용하고 있습니다. 내 안드로이드 오디오가 sdl2를 사용하고 있다고 생각하지만 어디서 확인 해야할지 모르겠 기 때문에 어딘가에서 본 기억이 있습니다. 나는 또한 KIVY_AUDIO 환경 변수를 변경하려고 시도했지만 작동하지 않았습니다 (나는 뭔가 잘못했다고 가정합니다).

내가 아무것도 찾을 수 없기 때문에 누구든지 해결 방법을 알고 있습니까?

패트릭

kivy SoundLoader 클래스에는 몇 가지 문제가 있습니다 (예 : 특정 mp3 파일에서 올바르게 검색하지 않음). Joey가 jnius에서 액세스 할 수있는 원래 Android 클래스를 언급했듯이 대부분의 노래 파일 (mp3, mp4, flac, waves 등)에서 더 잘 작동합니다.

나는 jnius를 사용하는 안드로이드와 윈도우를위한 두 개의 워킹 클래스를 만들었다 (물론 안드로이드 클래스는 여기서 작동하지 않는다).

문서에 설명 된대로 최신 kivy로 업데이트하고 gstreamer를 추가해야 할 수 있습니다. 그리고 : kivy logger는 안드로이드의 유니 코드에 몇 가지 문제가 있으며 인쇄 할 때 예외를 발생시킵니다. 그래도 소리가 잘 재생됩니다. 예외로 인해 짜증이 나면 kivy.info 행을 삭제하십시오.

#coding: utf-8

from kivy.core.audio import SoundLoader
from kivy.utils import platform 
from kivy.logger import Logger
import time

class MusicPlayerAndroid(object):
    def __init__(self):

        from jnius import autoclass
        MediaPlayer = autoclass('android.media.MediaPlayer')
        self.mplayer = MediaPlayer()

        self.secs = 0
        self.actualsong = ''
        self.length = 0
        self.isplaying = False

    def __del__(self):
        self.stop()
        self.mplayer.release()
        Logger.info('mplayer: deleted')

    def load(self, filename):
        try:
            self.actualsong = filename
            self.secs = 0
            self.mplayer.setDataSource(filename)        
            self.mplayer.prepare()
            self.length = self.mplayer.getDuration() / 1000
            Logger.info('mplayer load: %s' %filename)
            Logger.info ('type: %s' %type(filename) )
            return True
        except:
            Logger.info('error in title: %s' % filename) 
            return False

    def unload(self):
            self.mplayer.reset()

    def play(self):
        self.mplayer.start()
        self.isplaying = True
        Logger.info('mplayer: play')

    def stop(self):
        self.mplayer.stop()
        self.secs=0
        self.isplaying = False
        Logger.info('mplayer: stop')

    def seek(self,timepos_secs):
        self.mplayer.seekTo(timepos_secs * 1000)
        Logger.info ('mplayer: seek %s' %int(timepos_secs))


class MusicPlayerWindows(object):
    def __init__(self):
        self.secs = 0
        self.actualsong = ''
        self.length = 0
        self.isplaying = False
        self.sound = None

    def __del__(self):
        if self.sound:
            self.sound.unload()
            Logger.info('mplayer: deleted')

    def load(self, filename):
        self.__init__()
        if type(filename) == unicode: filename = filename.encode('utf-8') #unicode does not work ! 
        self.sound = SoundLoader.load(filename)    
        if self.sound:
            if self.sound.length != -1 :
                self.length = self.sound.length
                self.actualsong = filename
                Logger.info('mplayer: load %s' %filename)
                return True
            else:
                Logger.info ('mplayer: songlength = -1 ...')
        return False

    def unload(self):
        if self.sound != None:
            self.sound.unload()
            self.__init__ # reset vars

    def play(self):
        if self.sound:
            self.sound.play()
            self.isplaying = True
            Logger.info('mplayer: play')

    def stop(self):
        self.isplaying = False
        self.secs=0
        if self.sound:
            self.sound.stop()
            Logger.info('mplayer: stop')

    def seek(self, timepos_secs):
        self.sound.seek(timepos_secs)
        Logger.info('mplayer: seek %s' %int(timepos_secs))

def main():
    songs = [
        'f:\\_mp3_\\_testdir_\\file of ☠☢☣.mp3', #insert songs here
        'f:\\_mp3_\\Patricks Mp3s\\electro\\Echotek - Freak Africa.mp3',
        'f:\\_mp3_diverse_\\Testsuite\\flac\\01 - Jam & Spoon - Stella (Jam & Spoon Mix).flac',
        'f:\\_mp3_\\P1\\1Start\\Hot Chip - boy from school.mp4'
        ]

    Logger.info ('platform: %s' %platform)

    if platform == 'win':
        mplayer = MusicPlayerWindows()
    elif platform == 'android':
        mplayer = MusicPlayerAndroid()
    else:
        exit()

    for s in songs:
        if mplayer.load(s): # checking load, seek
            mplayer.play()
            time.sleep(2)
            mplayer.seek(90)
            time.sleep(2)
            mplayer.stop()
            mplayer.unload()

        else:
            Logger.info ('cant load song: %s' %s)


if __name__ == '__main__':
    main()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

<audio> 태그를 사용하여 Angular에서 MP3 재생

분류에서Dev

JavaScript를 사용하여 HTML에서 mp3 재생 제어

분류에서Dev

URL에서 mp3를 재생하는 방법

분류에서Dev

DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

분류에서Dev

MediaElement JS가 IE에서 MP3를 재생하지 않습니다.

분류에서Dev

Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

분류에서Dev

mediaplayer android를 사용하여 mp3를 재생할 수 없습니다.

분류에서Dev

Android : Mp3 사운드를 알림으로 재생하는 방법?

분류에서Dev

Android에서 MediaPlayer를 사용하여 로컬 mp3 파일을 재생할 수 없습니다.

분류에서Dev

다른 볼륨에서 동시에 자바 mp3 재생

분류에서Dev

NAudio를 사용하여 cryptoStream에서 mp3를 재생하는 방법은 무엇입니까?

분류에서Dev

다른 페이지 javascript를 참조하기 전에 mp3 파일을 재생하십시오.

분류에서Dev

CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

분류에서Dev

Alexa Skill : Alexa가 Alexa Developer Console-Alexa Hosted에서 .mp3를 재생하도록 할 수 있습니까?

분류에서Dev

파이 게임에서 텍스트 파일의 변수를 사용하여 mp3 재생

분류에서Dev

IE는 PHP 스크립트에서 MP3를 재생하지 않습니다.

분류에서Dev

Ajax를 통해 Rails Controller에서 오디오 (mp3) 재생

분류에서Dev

SoundJS : Firefox에서 mp3를 재생할 수 없습니다.

분류에서Dev

자바에서 mp3 재생

분류에서Dev

MP3 재생 중 플레이어에 표시되는 이미지는 어떻게 저장 되나요?

분류에서Dev

동일한 네트워크에서 Android를 통해 컴퓨터에서 mp3 파일을 재생하는 방법 (Gmote 2.0이하는 것과 동일)?

분류에서Dev

mp3 재생 서비스 또는 서버 (.mp3로 끝나는 링크)

분류에서Dev

VLC-명령 줄에서 동시에 두 개의 mp3 재생

분류에서Dev

AVPlayer를 사용하여 파일 관리자에 다운로드 한 mp3 파일 재생

분류에서Dev

exoplayer를 사용하여 getExternalFilesDir mp3 재생

분류에서Dev

내 리듬 박스가 mp3를 재생하지 않음

분류에서Dev

Rails를 사용하여 mp3 파일 업로드 / 재생

분류에서Dev

내 리듬 박스가 mp3를 재생하지 않음

분류에서Dev

Mp3 Intent Android Studio 재생

Related 관련 기사

  1. 1

    <audio> 태그를 사용하여 Angular에서 MP3 재생

  2. 2

    JavaScript를 사용하여 HTML에서 mp3 재생 제어

  3. 3

    URL에서 mp3를 재생하는 방법

  4. 4

    DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

  5. 5

    MediaElement JS가 IE에서 MP3를 재생하지 않습니다.

  6. 6

    Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

  7. 7

    mediaplayer android를 사용하여 mp3를 재생할 수 없습니다.

  8. 8

    Android : Mp3 사운드를 알림으로 재생하는 방법?

  9. 9

    Android에서 MediaPlayer를 사용하여 로컬 mp3 파일을 재생할 수 없습니다.

  10. 10

    다른 볼륨에서 동시에 자바 mp3 재생

  11. 11

    NAudio를 사용하여 cryptoStream에서 mp3를 재생하는 방법은 무엇입니까?

  12. 12

    다른 페이지 javascript를 참조하기 전에 mp3 파일을 재생하십시오.

  13. 13

    CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

  14. 14

    Alexa Skill : Alexa가 Alexa Developer Console-Alexa Hosted에서 .mp3를 재생하도록 할 수 있습니까?

  15. 15

    파이 게임에서 텍스트 파일의 변수를 사용하여 mp3 재생

  16. 16

    IE는 PHP 스크립트에서 MP3를 재생하지 않습니다.

  17. 17

    Ajax를 통해 Rails Controller에서 오디오 (mp3) 재생

  18. 18

    SoundJS : Firefox에서 mp3를 재생할 수 없습니다.

  19. 19

    자바에서 mp3 재생

  20. 20

    MP3 재생 중 플레이어에 표시되는 이미지는 어떻게 저장 되나요?

  21. 21

    동일한 네트워크에서 Android를 통해 컴퓨터에서 mp3 파일을 재생하는 방법 (Gmote 2.0이하는 것과 동일)?

  22. 22

    mp3 재생 서비스 또는 서버 (.mp3로 끝나는 링크)

  23. 23

    VLC-명령 줄에서 동시에 두 개의 mp3 재생

  24. 24

    AVPlayer를 사용하여 파일 관리자에 다운로드 한 mp3 파일 재생

  25. 25

    exoplayer를 사용하여 getExternalFilesDir mp3 재생

  26. 26

    내 리듬 박스가 mp3를 재생하지 않음

  27. 27

    Rails를 사용하여 mp3 파일 업로드 / 재생

  28. 28

    내 리듬 박스가 mp3를 재생하지 않음

  29. 29

    Mp3 Intent Android Studio 재생

뜨겁다태그

보관