【问题标题】:How to play audio link for RTMP in android?如何在 android 中播放 RTMP 的音频链接?
【发布时间】:2015-06-20 02:19:50
【问题描述】:

就我而言,我有一个简单的 RTMP 实时音频流(例如:rtmp://myserver/myapp/myliveaudio)。

在我的 Android 应用中阅读它的最简单方法是什么?

【问题讨论】:

    标签: android audio playback rtmp


    【解决方案1】:

    您可以简单地尝试使用 webview 进行连接

    public class Player extends Activity implements OnClickListener {
    
        WebView webView;
    
        String bodyHtml;
        String rtmpUrl;
        String fileName;
        Button refreshButton;
        String htmlPost = "</body></html>";
        String htmlPre = "<!DOCTYPE html>" 
                + "<html lang=\"en\">"
                + "<head><meta charset=\"utf-8\">" 
                + "</head>"
                + "<body style='margin:0; pading:0;"
                + " background-color: #71D5CA;'>";
    
        String htmlCode = "<embed " 
                + "type=\"application/x-shockwave-flash\""
                + "id=\"player1\" " + "name=\"player1\" "
                + "src=\"http://developer.longtailvideo.com"
                + "/svn/trunk/fl5/player.swf\""
                + "width=\"320\""
                + "height=\"280\"" + " flashvars=@FILESRC@"
                + "allowfullscreen=\"true\"" 
                + "allowscripaccess=\"always\""
                + "/>   ";
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            webView = (WebView) findViewById(R.id.webview);
    
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setAllowFileAccess(true);
            webView.getSettings().setPluginsEnabled(true);
            webView.getSettings().setSupportZoom(true);
            webView.getSettings().setAppCacheEnabled(true);
    
            refreshButton = 
                (Button) findViewById(R.id.main_bt_refresh);
            refreshButton.setOnClickListener(this);
    
            refreshFileName();
        }
    
        @Override
        public void onClick(View v) {
            refreshFileName();
        }
    
        private void refreshFileName() {
            EditText etRtmpUrl = 
                (EditText) findViewById(R.id.setup_et_host);
            EditText etFileName = 
                (EditText) findViewById(R.id.setup_et_file);
            rtmpUrl = etRtmpUrl.getText().toString();
            fileName = etFileName.getText().toString();
            if (fileName.endsWith(".flv")) {
                fileName = "flv:" + fileName;
            }
    
            bodyHtml = htmlCode;
            bodyHtml = bodyHtml.replaceAll("@FILESRC@", 
                    "\"file=" + fileName
                    + "&streamer=" + rtmpUrl + "\"");
            webView.loadDataWithBaseURL("http://127.0.0.1",
                    htmlPre + bodyHtml
                    + htmlPost, "text/html", "UTF-8", null);
        }
    
    }
    

    以这个项目为例:

    https://code.google.com/p/android-recorder/downloads/detail?name=android-rtmp-player_src.zip&can=2&q=

    【讨论】:

    • 我的rtmp url是直播url,那么fileName应该传入什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2012-05-11
    • 2015-11-27
    • 2011-09-15
    • 2023-03-23
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多