Search in sources :

Example 11 with R5Connection

use of com.red5pro.streaming.R5Connection in project streaming-android by red5pro.

the class SubscribeStreamManagerTest method subscribeToManager.

private void subscribeToManager(String url) {
    // Create the configuration from the tests.xml
    R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP, url, TestContent.GetPropertyInt("port"), TestContent.GetPropertyString("context"), TestContent.GetPropertyFloat("subscribe_buffer_time"));
    config.setLicenseKey(TestContent.GetPropertyString("license_key"));
    config.setBundleID(getActivity().getPackageName());
    R5Connection connection = new R5Connection(config);
    // setup a new stream using the connection
    subscribe = new R5Stream(connection);
    subscribe.setListener(this);
    subscribe.audioController = new R5AudioController();
    subscribe.audioController.sampleRate = TestContent.GetPropertyInt("sample_rate");
    // show all logging
    subscribe.setLogLevel(R5Stream.LOG_LEVEL_DEBUG);
    // find the view and attach the stream
    display.attachStream(subscribe);
    display.showDebugView(TestContent.GetPropertyBool("debug_view"));
    subscribe.play(TestContent.GetPropertyString("stream1"));
    edgeShow = new TextView(display.getContext());
    FrameLayout.LayoutParams position = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
    edgeShow.setLayoutParams(position);
    ((FrameLayout) display.getParent()).addView(edgeShow);
    edgeShow.setText("Connected to: " + url, TextView.BufferType.NORMAL);
    edgeShow.setBackgroundColor(Color.LTGRAY);
}
Also used : R5Configuration(com.red5pro.streaming.config.R5Configuration) R5Connection(com.red5pro.streaming.R5Connection) R5Stream(com.red5pro.streaming.R5Stream) FrameLayout(android.widget.FrameLayout) TextView(android.widget.TextView) R5AudioController(com.red5pro.streaming.media.R5AudioController)

Example 12 with R5Connection

use of com.red5pro.streaming.R5Connection in project streaming-android by red5pro.

the class SubscribeTest method Subscribe.

public void Subscribe() {
    // Create the configuration from the tests.xml
    R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP, TestContent.GetPropertyString("host"), TestContent.GetPropertyInt("port"), TestContent.GetPropertyString("context"), TestContent.GetPropertyFloat("subscribe_buffer_time"));
    config.setLicenseKey(TestContent.GetPropertyString("license_key"));
    config.setBundleID(getActivity().getPackageName());
    R5Connection connection = new R5Connection(config);
    // setup a new stream using the connection
    subscribe = new R5Stream(connection);
    // Some devices can't handle rapid reuse of the audio controller, and will crash
    // Recreation of the controller assures that the example will always be stable
    subscribe.audioController = new R5AudioController();
    subscribe.audioController.sampleRate = TestContent.GetPropertyInt("sample_rate");
    subscribe.client = this;
    subscribe.setListener(this);
    // show all logging
    subscribe.setLogLevel(R5Stream.LOG_LEVEL_DEBUG);
    // display.setZOrderOnTop(true);
    display.attachStream(subscribe);
    display.showDebugView(TestContent.GetPropertyBool("debug_view"));
    subscribe.play(TestContent.GetPropertyString("stream1"));
}
Also used : R5Configuration(com.red5pro.streaming.config.R5Configuration) R5Connection(com.red5pro.streaming.R5Connection) R5Stream(com.red5pro.streaming.R5Stream) R5AudioController(com.red5pro.streaming.media.R5AudioController)

Example 13 with R5Connection

use of com.red5pro.streaming.R5Connection in project streaming-android by red5pro.

the class TwoWayTest method onSubscribeReady.

private void onSubscribeReady() {
    if (subscribe != null)
        return;
    System.out.println("bitrate - subscribe start");
    Handler r = new Handler(Looper.getMainLooper());
    final R5ConnectionListener additionalListener = this;
    r.post(new Runnable() {

        @Override
        public void run() {
            System.out.println("Subscribing");
            R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP, TestContent.GetPropertyString("host"), TestContent.GetPropertyInt("port"), TestContent.GetPropertyString("context"), TestContent.GetPropertyFloat("subscribe_buffer_time"));
            config.setLicenseKey(TestContent.GetPropertyString("license_key"));
            config.setBundleID(getActivity().getPackageName());
            R5Connection connection = new R5Connection(config);
            // setup a new stream using the connection
            subscribe = new R5Stream(connection);
            // show all logging
            subscribe.setLogLevel(R5Stream.LOG_LEVEL_DEBUG);
            // find the view and attach the stream
            display.attachStream(subscribe);
            display.showDebugView(TestContent.GetPropertyBool("debug_view"));
            R5ConnectionListener listener = new R5ConnectionListener() {

                @Override
                public void onConnectionEvent(R5ConnectionEvent r5ConnectionEvent) {
                    // additionalListener.onConnectionEvent(r5ConnectionEvent);
                    Log.d("Subscriber", ":onConnectionEvent " + r5ConnectionEvent.name());
                    if (r5ConnectionEvent == R5ConnectionEvent.START_STREAMING) {
                        isSubscribing = true;
                    }
                    if (r5ConnectionEvent == R5ConnectionEvent.ERROR) {
                        subscribe.stop();
                        subscribe = null;
                        isSubscribing = false;
                        sendRemoteCall();
                    }
                    if (r5ConnectionEvent == R5ConnectionEvent.DISCONNECTED) {
                        if (isSubscribing) {
                            isSubscribing = false;
                            subscribe.stop();
                            subscribe = null;
                        }
                    }
                }
            };
            subscribe.setListener(listener);
            // Unlike basic subscription, two-way needs echo cancellation, which needs the subscriber and publisher
            // to use the same Audio Controller - instead of recreating it for stability, we delay the subscriber
            subscribe.play(TestContent.GetPropertyString("stream2"));
            killListThread();
        }
    });
}
Also used : R5ConnectionListener(com.red5pro.streaming.event.R5ConnectionListener) R5Configuration(com.red5pro.streaming.config.R5Configuration) R5Connection(com.red5pro.streaming.R5Connection) R5Stream(com.red5pro.streaming.R5Stream) Handler(android.os.Handler) R5ConnectionEvent(com.red5pro.streaming.event.R5ConnectionEvent)

Example 14 with R5Connection

use of com.red5pro.streaming.R5Connection in project streaming-android by red5pro.

the class PublishTest method publish.

protected void publish() {
    String b = getActivity().getPackageName();
    // Create the configuration from the values.xml
    R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP, TestContent.GetPropertyString("host"), TestContent.GetPropertyInt("port"), TestContent.GetPropertyString("context"), TestContent.GetPropertyFloat("publish_buffer_time"));
    config.setLicenseKey(TestContent.GetPropertyString("license_key"));
    config.setBundleID(b);
    R5Connection connection = new R5Connection(config);
    // setup a new stream using the connection
    publish = new R5Stream(connection);
    publish.audioController.sampleRate = TestContent.GetPropertyInt("sample_rate");
    // show all logging
    publish.setLogLevel(R5Stream.LOG_LEVEL_DEBUG);
    if (TestContent.GetPropertyBool("video_on")) {
        // attach a camera video source
        cam = openFrontFacingCameraGingerbread();
        cam.setDisplayOrientation((camOrientation + 180) % 360);
        camera = new R5Camera(cam, TestContent.GetPropertyInt("camera_width"), TestContent.GetPropertyInt("camera_height"));
        camera.setBitrate(TestContent.GetPropertyInt("bitrate"));
        camera.setOrientation(camOrientation);
        camera.setFramerate(TestContent.GetPropertyInt("fps"));
    }
    if (TestContent.GetPropertyBool("audio_on")) {
        // attach a microphone
        R5Microphone mic = new R5Microphone();
        publish.attachMic(mic);
    }
    preview.attachStream(publish);
    if (TestContent.GetPropertyBool("video_on"))
        publish.attachCamera(camera);
    preview.showDebugView(TestContent.GetPropertyBool("debug_view"));
    publish.setListener(this);
    publish.publish(TestContent.GetPropertyString("stream1"), R5Stream.RecordType.Live);
    if (TestContent.GetPropertyBool("video_on")) {
        cam.startPreview();
    }
}
Also used : R5Camera(com.red5pro.streaming.source.R5Camera) R5Microphone(com.red5pro.streaming.source.R5Microphone) R5Configuration(com.red5pro.streaming.config.R5Configuration) R5Connection(com.red5pro.streaming.R5Connection) R5Stream(com.red5pro.streaming.R5Stream)

Example 15 with R5Connection

use of com.red5pro.streaming.R5Connection in project streaming-android by red5pro.

the class SubscribeCluster method beginSubscribe.

protected void beginSubscribe() {
    R5Configuration config = new R5Configuration(R5StreamProtocol.RTSP, edgeIP, TestContent.GetPropertyInt("port"), TestContent.GetPropertyString("context"), TestContent.GetPropertyFloat("subscribe_buffer_time"));
    config.setLicenseKey(TestContent.GetPropertyString("license_key"));
    config.setBundleID(getActivity().getPackageName());
    R5Connection connection = new R5Connection(config);
    // setup a new stream using the connection
    subscribe = new R5Stream(connection);
    subscribe.setListener(this);
    subscribe.audioController = new R5AudioController();
    subscribe.audioController.sampleRate = TestContent.GetPropertyInt("sample_rate");
    // show all logging
    subscribe.setLogLevel(R5Stream.LOG_LEVEL_DEBUG);
    // find the view and attach the stream
    display.attachStream(subscribe);
    display.showDebugView(TestContent.GetPropertyBool("debug_view"));
    subscribe.play(TestContent.GetPropertyString("stream1"));
    edgeShow = new TextView(display.getContext());
    FrameLayout.LayoutParams position = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
    edgeShow.setLayoutParams(position);
    ((FrameLayout) display.getParent()).addView(edgeShow);
    edgeShow.setText("Connected to: " + edgeIP, TextView.BufferType.NORMAL);
    edgeShow.setBackgroundColor(Color.LTGRAY);
}
Also used : R5Configuration(com.red5pro.streaming.config.R5Configuration) R5Connection(com.red5pro.streaming.R5Connection) R5Stream(com.red5pro.streaming.R5Stream) FrameLayout(android.widget.FrameLayout) TextView(android.widget.TextView) R5AudioController(com.red5pro.streaming.media.R5AudioController)

Aggregations

R5Connection (com.red5pro.streaming.R5Connection)18 R5Stream (com.red5pro.streaming.R5Stream)18 R5Configuration (com.red5pro.streaming.config.R5Configuration)18 R5Microphone (com.red5pro.streaming.source.R5Microphone)9 R5AudioController (com.red5pro.streaming.media.R5AudioController)8 View (android.view.View)7 R5Camera (com.red5pro.streaming.source.R5Camera)7 R5VideoView (com.red5pro.streaming.view.R5VideoView)7 FrameLayout (android.widget.FrameLayout)3 TextView (android.widget.TextView)3 Handler (android.os.Handler)2 SurfaceView (android.view.SurfaceView)2 R5ConnectionListener (com.red5pro.streaming.event.R5ConnectionListener)2 CameraAccessException (android.hardware.camera2.CameraAccessException)1 CameraCharacteristics (android.hardware.camera2.CameraCharacteristics)1 CameraDevice (android.hardware.camera2.CameraDevice)1 CameraManager (android.hardware.camera2.CameraManager)1 ImageView (android.widget.ImageView)1 R5ConnectionEvent (com.red5pro.streaming.event.R5ConnectionEvent)1 R5AdaptiveBitrateController (com.red5pro.streaming.source.R5AdaptiveBitrateController)1