繁体   English   中英

Android音频流

[英]Android Audio Streaming

是否有人知道可以从URL运行android音频流的代码,这些代码将在android OS 2.2中运行。 我在开发人员站点上查看过,那里的代码似乎对我不起作用。 其他一些代码或教程适用于旧版本的android。

这是我一直在使用的代码中的代码(不起作用):

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Radio extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radio);
        final MediaPlayer mp = new MediaPlayer();
        try {
            mp.setDataSource(URL);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
                // This is code for a button that starts the stream when clicked
        Button bRadio = (Button) findViewById(R.id.button_stream);
        bRadio.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View V) {



                mp.start(); 
    }






        });





   }
}       

datasource设置为URL时 ,请使用mp.prepareAsync()而不是mp.prepare()

如果您可以使用JNI,请在此处找到一些示例代码:

正在创建的JNI URI播放器喜欢这样:

// configure audio source  
SLDataLocator_URI loc_uri = {SL_DATALOCATOR_URI, (SLchar *) uri_utf8};  
SLDataFormat_MIME format_mime = {SL_DATAFORMAT_MIME, NULL, SL_CONTAINERTYPE_UNSPECIFIED};  
SLDataSource audioSrc = {&loc_uri, &format_mime};  

// configure audio sink  
SLDataLocator_OutputMix loc_outmix = {SL_DATALOCATOR_OUTPUTMIX, outputMixObject};  
SLDataSink audioSnk = {&loc_outmix, NULL};

// create audio player
const SLInterfaceID ids[3] = {SL_IID_SEEK, SL_IID_MUTESOLO, SL_IID_VOLUME};
const SLboolean req[3] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};
(*engineEngine)->CreateAudioPlayer(engineEngine, &uriPlayerObject, &audioSrc,&audioSnk, 3, ids, req);  
(*uriPlayerObject)->Realize(uriPlayerObject, SL_BOOLEAN_FALSE);  
(*uriPlayerObject)->GetInterface(uriPlayerObject, SL_IID_PLAY, &uriPlayerPlay);  

...获得其他接口...

那么您可以玩:

(*uriPlayerPlay)->SetPlayState(uriPlayerPlay,SL_PLAYSTATE_PLAYING);  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM